Add cmake/make for build system
This commit is contained in:
41
CMakeLists.txt
Normal file
41
CMakeLists.txt
Normal file
@@ -0,0 +1,41 @@
|
||||
cmake_minimum_required(VERSION 3.20)
|
||||
project(wtfnet LANGUAGES NONE)
|
||||
|
||||
set(CARGO_CMD cargo)
|
||||
set(CARGO_TARGET_DIR "${CMAKE_BINARY_DIR}/cargo-target")
|
||||
set(BIN_NAME "wtfn${CMAKE_EXECUTABLE_SUFFIX}")
|
||||
set(BIN_PATH "${CARGO_TARGET_DIR}/release/${BIN_NAME}")
|
||||
|
||||
file(READ "${CMAKE_SOURCE_DIR}/crates/wtfnet-cli/Cargo.toml" CLI_TOML)
|
||||
string(REGEX MATCH "version = \"([0-9]+\\.[0-9]+\\.[0-9]+)\"" CLI_VERSION_MATCH "${CLI_TOML}")
|
||||
if(CMAKE_MATCH_1)
|
||||
set(PACKAGE_VERSION "${CMAKE_MATCH_1}")
|
||||
else()
|
||||
set(PACKAGE_VERSION "0.1.0")
|
||||
endif()
|
||||
|
||||
add_custom_command(
|
||||
OUTPUT "${BIN_PATH}"
|
||||
COMMAND "${CMAKE_COMMAND}" -E env CARGO_TARGET_DIR="${CARGO_TARGET_DIR}"
|
||||
"${CARGO_CMD}" build --release --workspace --bin wtfn
|
||||
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}"
|
||||
COMMENT "Building wtfn with cargo"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
add_custom_target(wtfnet_build ALL DEPENDS "${BIN_PATH}")
|
||||
|
||||
install(PROGRAMS "${BIN_PATH}" DESTINATION bin)
|
||||
install(DIRECTORY "${CMAKE_SOURCE_DIR}/data" DESTINATION share/wtfnet)
|
||||
|
||||
add_dependencies(install wtfnet_build)
|
||||
|
||||
set(CPACK_PACKAGE_NAME "wtfnet")
|
||||
set(CPACK_PACKAGE_VERSION "${PACKAGE_VERSION}")
|
||||
set(CPACK_PACKAGE_FILE_NAME "wtfnet-${PACKAGE_VERSION}-${CMAKE_SYSTEM_NAME}-${CMAKE_SYSTEM_PROCESSOR}")
|
||||
if(WIN32)
|
||||
set(CPACK_GENERATOR "ZIP")
|
||||
else()
|
||||
set(CPACK_GENERATOR "TGZ")
|
||||
endif()
|
||||
include(CPack)
|
||||
Reference in New Issue
Block a user