CMAKE: cleanup cmake script

master
Martin Gerhardy 2020-07-13 20:14:24 +02:00
parent b0ac5d16e7
commit cce48628e9
1 changed files with 1 additions and 69 deletions

View File

@ -56,7 +56,6 @@ option(THUMBNAILER "Builds thumbnailer" ON)
option(VOXCONVERT "Builds voxconvert" ON)
option(MAPVIEW "Builds mapview" ON)
option(NOISETOOL "Builds noisetool" ON)
option(VOXEDIT_ONLY "Builds voxedit only" OFF)
set(GIT_EXECUTABLE "git" CACHE STRING "The git binary to use for the update-libs target")
set(HG_EXECUTABLE "hg" CACHE STRING "The mercurial binary to use for the update-libs target")
option(USE_CCACHE "Use ccache" ON)
@ -71,15 +70,6 @@ set(SERVER_PORT "11337" CACHE STRING "Port where the server is listening on")
set(HTTP_SERVER_PORT "8080" CACHE STRING "Port where the http server is listening on")
set(DOCKER_REGISTRY "" CACHE STRING "Docker registry")
if (VOXEDIT_ONLY)
set(MAPVIEW OFF)
set(NOISETOOL OFF)
set(RCON OFF)
set(SERVER OFF)
set(CLIENT OFF)
set(TOOLS ON)
endif()
if (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
set(WINDOWS 1)
elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Android")
@ -150,18 +140,8 @@ foreach(OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES})
endforeach()
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${SCRIPTS_CMAKE_DIR})
set(CMAKE_VERBOSE_MAKEFILE ${VERBOSE})
set(CMAKE_COLOR_MAKEFILE ON)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
if (${CMAKE_GENERATOR} MATCHES "Eclipse CDT4")
message(STATUS "Generate eclipse projects")
set(CMAKE_ECLIPSE_GENERATE_LINKED_RESOURCES OFF)
set(CMAKE_ECLIPSE_GENERATE_SOURCE_PROJECT ON)
set(CMAKE_ECLIPSE_VERSION "4.3" CACHE STRING "Eclipse version")
set(CMAKE_CXX_COMPILER_ARG1 "-std=c++14" CACHE STRING "C++ version for Eclipse")
endif()
find_host_program(CCACHE "ccache")
if (CCACHE)
if (USE_CCACHE)
@ -179,8 +159,6 @@ endif()
find_host_program(GDB_EXECUTABLE NAMES ${GDB_BINARY} gdb)
find_host_program(LLDB_EXECUTABLE NAMES ${LLDB_BINARY} lldb)
find_host_program(GIT_EXECUTABLE NAMES ${GIT_BINARY} git)
find_host_program(HG_EXECUTABLE NAMES ${HG_BINARY} hg)
check_include_files("uuid/uuid.h" HAVE_UUID_H)
set(CURSES_NEED_NCURSES True)
@ -206,7 +184,7 @@ if (UNITTESTS)
endif()
configure_file(src/engine-config.h.in engine-config.h @ONLY)
message(STATUS "Generate config.h in ${CMAKE_CURRENT_BINARY_DIR}")
message(STATUS "Generate engine-config.h in ${CMAKE_CURRENT_BINARY_DIR}")
find_package(Doxygen)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Doxyfile.in ${CMAKE_CURRENT_BINARY_DIR}/Doxyfile @ONLY)
@ -218,49 +196,3 @@ if (DOXYGEN_FOUND)
DEPENDS codegen
)
endif(DOXYGEN_FOUND)
macro(engine_update_git_lib)
set(_OPTIONS_ARGS)
set(_ONE_VALUE_ARGS LIB URL TARGETDIR)
set(_MULTI_VALUE_ARGS COPY DELETE REVERT)
cmake_parse_arguments(UPDATE "${_OPTIONS_ARGS}" "${_ONE_VALUE_ARGS}" "${_MULTI_VALUE_ARGS}" ${ARGN} )
if (NOT UPDATE_TARGETDIR)
set(UPDATE_TARGETDIR "${ROOT_DIR}/contrib/libs/${UPDATE_LIB}")
endif()
if (GIT_EXECUTABLE)
set(CLONE_DIR ${CMAKE_BINARY_DIR}/${UPDATE_LIB}.sync)
set(CLONE_CMAKE ${CMAKE_BINARY_DIR}/UpdateGit${UPDATE_LIB}.cmake)
file(WRITE ${CLONE_CMAKE} "if (NOT EXISTS ${CLONE_DIR})\n\tmessage(STATUS \"Clone repository for ${UPDATE_LIB}\")\n")
file(APPEND ${CLONE_CMAKE} "\texecute_process(COMMAND ${GIT_EXECUTABLE} clone --depth=1 ${UPDATE_URL} ${CLONE_DIR})\n")
file(APPEND ${CLONE_CMAKE} "else()\n\tmessage(STATUS \"Update repository for ${UPDATE_LIB}\")\n")
file(APPEND ${CLONE_CMAKE} "\texecute_process(COMMAND ${GIT_EXECUTABLE} -C ${CLONE_DIR} pull --depth=1 --rebase)\n")
file(APPEND ${CLONE_CMAKE} "endif()\n")
if (UPDATE_DELETE)
file(APPEND ${CLONE_CMAKE} "foreach(file ${UPDATE_COPY})\n")
file(APPEND ${CLONE_CMAKE} "\tmessage(STATUS \"delete \${file}\")\n")
file(APPEND ${CLONE_CMAKE} "\t# TODO: delete file\n")
file(APPEND ${CLONE_CMAKE} "endforeach()\n")
endif()
if (UPDATE_COPY)
file(APPEND ${CLONE_CMAKE} "foreach(file ${UPDATE_COPY})\n")
file(APPEND ${CLONE_CMAKE} "\tmessage(STATUS \"check \${file}\")\n")
file(APPEND ${CLONE_CMAKE} "\tconfigure_file(${CLONE_DIR}/\${file} ${UPDATE_TARGETDIR}/\${file} COPYONLY)\n")
file(APPEND ${CLONE_CMAKE} "endforeach()\n")
endif()
if (UPDATE_REVERT)
file(APPEND ${CLONE_CMAKE} "foreach(file ${UPDATE_COPY})\n")
file(APPEND ${CLONE_CMAKE} "\tmessage(STATUS \"revert \${file}\")\n")
file(APPEND ${CLONE_CMAKE} "\texecute_process(COMMAND ${GIT_EXECUTABLE} checkout -f ${UPDATE_TARGETDIR}/\${file})\n")
file(APPEND ${CLONE_CMAKE} "endforeach()\n")
endif()
add_custom_target(update-libs-${UPDATE_LIB} ${CMAKE_COMMAND} -P ${CLONE_CMAKE})
add_dependencies(update-libs update-libs-${UPDATE_LIB})
else()
message(STATUS "Could not add update-libs-${UPDATE_LIB} target - no git installed or found")
endif()
endmacro()
engine_update_git_lib(LIB simplecpp URL "https://github.com/danmar/simplecpp.git" COPY simplecpp.cpp simplecpp.h)