X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fxonotic-data.pk3dir.git;a=blobdiff_plain;f=CMakeLists.txt;h=f732e5b7afdece143b8c5de31f569375293bcc72;hp=c235c977527a05478fd93b3f206d403cf8c7b259;hb=750f4d1b8394736fbaeb8d36a087b28443dc0c0d;hpb=44595603cb4118272d1756d6cef0b660abf3a7e1 diff --git a/CMakeLists.txt b/CMakeLists.txt index c235c97752..f732e5b7af 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,18 +1,97 @@ -cmake_minimum_required(VERSION 2.8.11) -list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/cmake) -project(xonotic-data LANGUAGES ASM) +cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR) +list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake") +project(xonotic-data ASM) + +set(all qc-all) +add_custom_target(${all}) + +set(checks qc-checks) +add_custom_target(${checks}) + +if (gmqcc_BINARY_DIR) + set(compilerinfo "${gmqcc_BINARY_DIR}/gmqcc.h") + add_custom_command( + OUTPUT "${compilerinfo}" + DEPENDS "${gmqcc_BINARY_DIR}/gmqcc" + VERBATIM + COMMAND ${CMAKE_COMMAND} -E + md5sum "${gmqcc_BINARY_DIR}/gmqcc" > "${compilerinfo}" + ) + add_custom_target(qcc ALL + DEPENDS "${compilerinfo}" + ) +endif () + +add_dependencies(${checks} data-check-cvars) +add_custom_target(data-check-cvars + COMMENT "checking cvars" + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" + VERBATIM COMMAND ${CMAKE_COMMAND} -E + env "CMAKE=1" + "${PROJECT_SOURCE_DIR}/check-cvars.sh" + ) + +add_dependencies(${checks} qc-genmod) +add_custom_target(qc-genmod + COMMENT "genmod.sh" + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/qcsrc" + VERBATIM COMMAND ./tools/genmod.sh + ) + +add_dependencies(${checks} qc-headerstyle) +add_custom_target(qc-headerstyle + COMMENT "headerstyle.sh" + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/qcsrc" + VERBATIM COMMAND ${CMAKE_COMMAND} -E + env "VERBOSE=0" + ./tools/headerstyle.sh + ) + +add_dependencies(${checks} qc-whitespace) +add_custom_target(qc-whitespace + COMMENT "whitespace.sh" + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}/qcsrc" + VERBATIM COMMAND ./tools/whitespace.sh + ) + +function(prog name dir) + add_executable(${name} qcsrc/${dir}/progs.inc) + add_dependencies(${all} ${name}) + add_dependencies(${name} ${checks}) + add_dependencies(${name} qcc) + set_source_files_properties(qcsrc/${dir}/progs.inc PROPERTIES OBJECT_DEPENDS "${compilerinfo}") +endfunction() + +function(set_prelude target prelude) + get_target_property(MY_PROJECT_SOURCES ${target} SOURCES) + foreach (source IN LISTS MY_PROJECT_SOURCES) + set_property( + SOURCE ${source} + APPEND PROPERTY COMPILE_FLAGS + "-include ${prelude}" + ) + endforeach () +endfunction() include_directories(qcsrc) +add_definitions(-DXONOTIC=1) add_definitions(-DNDEBUG=1) +add_definitions(-DENABLE_EFFECTINFO=0) +add_definitions(-DENABLE_DEBUGDRAW=0) +add_definitions(-DENABLE_DEBUGTRACE=0) -find_package(Git REQUIRED) -execute_process( - COMMAND ${GIT_EXECUTABLE} describe --tags --dirty=* - WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} - OUTPUT_VARIABLE GIT_DESC - OUTPUT_STRIP_TRAILING_WHITESPACE -) +if (DEFINED ENV{VERSION}) + set(GIT_DESC "$ENV{VERSION}") +else () + find_package(Git REQUIRED) + execute_process( + COMMAND ${GIT_EXECUTABLE} describe --tags --dirty=~ + WORKING_DIRECTORY ${PROJECT_SOURCE_DIR} + OUTPUT_VARIABLE GIT_DESC + OUTPUT_STRIP_TRAILING_WHITESPACE + ) +endif () add_definitions(-DWATERMARK=\"${GIT_DESC}\") set_source_files_properties( @@ -24,29 +103,15 @@ set_source_files_properties( HEADER_FILE_ONLY FALSE ) -add_executable(csprogs qcsrc/client/progs.inc) -target_compile_definitions(csprogs PRIVATE -DCSQC) -add_dependencies(csprogs gmqcc) +prog(csprogs client) +target_compile_definitions(csprogs PRIVATE -DGAMEQC -DCSQC) +# set_prelude(csprogs "${PROJECT_SOURCE_DIR}/qcsrc/lib/_all.inc") -add_executable(progs qcsrc/server/progs.inc) -target_compile_definitions(progs PRIVATE -DSVQC) -add_dependencies(progs gmqcc) +prog(progs server) +target_compile_definitions(progs PRIVATE -DGAMEQC -DSVQC) -add_executable(menu qcsrc/menu/progs.inc) +prog(menu menu) target_compile_definitions(menu PRIVATE -DMENUQC) -add_dependencies(menu gmqcc) - -function(set_prelude target prelude) - get_target_property(MY_PROJECT_SOURCES target SOURCES) - foreach (source IN LISTS MY_PROJECT_SOURCES) - set_property( - SOURCE ${source} - APPEND PROPERTY COMPILE_FLAGS - "-include ${PROJECT_SOURCE_DIR}/${prelude}" - ) - endforeach () -endfunction() -# set_prelude(csprogs qcsrc/lib/_all.inc) function(copy prog) add_custom_command(TARGET ${prog} POST_BUILD @@ -60,12 +125,12 @@ copy(progs) copy(menu) function(pack prog) - add_custom_target(${prog}.pk3 + add_custom_target(${prog}.pk3 ALL DEPENDS ${prog}-${GIT_DESC}.pk3 ) add_custom_command(OUTPUT ${prog}-${GIT_DESC}.pk3 DEPENDS ${prog} - COMMAND ${CMAKE_COMMAND} -E echo "http://xonotic.org" > "${prog}-${GIT_DESC}.txt" + COMMAND ${CMAKE_COMMAND} -E echo "https://xonotic.org" > "${prog}-${GIT_DESC}.txt" COMMAND ${CMAKE_COMMAND} -E copy "$/${prog}.dat" "${prog}-${GIT_DESC}.dat" COMMAND ${CMAKE_COMMAND} -E copy "$/${prog}.lno" "${prog}-${GIT_DESC}.lno" COMMAND ${CMAKE_COMMAND} -E tar "cfv" "${prog}-${GIT_DESC}.pk3" --format=zip