1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
cmake_minimum_required(VERSION 3.16...3.31)
# Runs autorevision to copy autorevision.cache to the source package
# (it should not be copied to binary package).
set(_STANDARD_CPACK_SOURCE_GENERATORS 7Z TGZ TXZ STGZ TBZ2 TZ ZIP CygwinSource)
# To detect if this is a CPack build of the *source* package, check whether $CPACK_GENERATOR
# (which is set to the current CPack generator) is in a standard list of source generators
# or is in the $CPACK_SOURCE_GENERATOR list.
#
if(("${CPACK_GENERATOR}" IN_LIST CPACK_SOURCE_GENERATOR) OR ("${CPACK_GENERATOR}" IN_LIST _STANDARD_CPACK_SOURCE_GENERATORS))
if(NOT CPACK_SOURCE_INSTALLED_DIRECTORIES)
execute_process(COMMAND "${CMAKE_COMMAND}" -E echo "Generator is \"${CPACK_GENERATOR}\", but this does not appear to be a source package")
return()
endif()
# When packaging source, generate (and include) build_tools/autorevision.cache
set(AUTOREVISION_OUTPUT_FILE "${CMAKE_CURRENT_BINARY_DIR}/build_tools/autorevision.cache")
set(CACHEFILE "@PROJECT_SOURCE_DIR@/build_tools/autorevision.cache")
execute_process(COMMAND ${CMAKE_COMMAND} -DCACHEFILE=${CACHEFILE} -DOUTPUT_TYPE=sh -DOUTPUT_FILE=${AUTOREVISION_OUTPUT_FILE} -DSKIPUPDATECACHE="1" -P "@PROJECT_SOURCE_DIR@/build_tools/autorevision.cmake"
WORKING_DIRECTORY "@PROJECT_SOURCE_DIR@")
# Also generate (and include) lib/netplay/netplay_config.gen
# for external scripts that need to determine the NETCODE_VERSION from the source tarball
# (without running their own CMake build to generate netplay_config.h)
set(OUTPUT_FILE "${CMAKE_CURRENT_BINARY_DIR}/lib/netplay/netplay_config.gen")
set(CACHEFILE "${AUTOREVISION_OUTPUT_FILE}")
set(_netplay_config_template_file "@PROJECT_SOURCE_DIR@/lib/netplay/netplay_config.h.in")
set(_project_root "@PROJECT_SOURCE_DIR@")
execute_process(COMMAND ${CMAKE_COMMAND} -DCACHEFILE=${CACHEFILE} -DPROJECT_ROOT=${_project_root} -DTEMPLATE_FILE=${_netplay_config_template_file} -DOUTPUT_FILE=${OUTPUT_FILE} -P "@PROJECT_SOURCE_DIR@/lib/netplay/autorevision_netplay.cmake"
WORKING_DIRECTORY "@PROJECT_SOURCE_DIR@")
endif()
|