42 lines
1.3 KiB
CMake
42 lines
1.3 KiB
CMake
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)
|