+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()