diff options
-rw-r--r-- | cmake/opentrack-hier.cmake | 7 | ||||
-rw-r--r-- | cmake/opentrack-i18n.cmake | 25 | ||||
-rw-r--r-- | cmake/opentrack-install.cmake | 56 | ||||
-rw-r--r-- | cmake/opentrack-platform.cmake | 22 |
4 files changed, 45 insertions, 65 deletions
diff --git a/cmake/opentrack-hier.cmake b/cmake/opentrack-hier.cmake index 8f778bb2..734ba183 100644 --- a/cmake/opentrack-hier.cmake +++ b/cmake/opentrack-hier.cmake @@ -44,13 +44,6 @@ function(otr_escape_string var str) set(${var} "${tmp__}" PARENT_SCOPE)
endfunction()
-function(otr_setup_refresh_install_dir)
- if((NOT CMAKE_INSTALL_PREFIX STREQUAL "") AND (NOT opentrack-doc-src-pfx STREQUAL ""))
- otr_escape_string(dir "${CMAKE_INSTALL_PREFIX}/${opentrack-doc-src-pfx}/")
- install(CODE "file(REMOVE_RECURSE \"${dir}\")")
- endif()
-endfunction()
-
set(opentrack-contrib-pfx "${opentrack-doc-pfx}/contrib")
set(opentrack-binary-suffix "")
diff --git a/cmake/opentrack-i18n.cmake b/cmake/opentrack-i18n.cmake index 543d1eea..c23d5d1d 100644 --- a/cmake/opentrack-i18n.cmake +++ b/cmake/opentrack-i18n.cmake @@ -1,3 +1,5 @@ +add_custom_target(i18n ALL) + function(otr_i18n_for_target_directory n) set(k "opentrack-${n}") @@ -25,32 +27,22 @@ function(otr_i18n_for_target_directory n) . -ts "${t}" COMMAND "${CMAKE_COMMAND}" -E copy "${t}" "${t2}" - DEPENDS ${input} ${t} + DEPENDS "${input}" "${t}" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" COMMENT "Running lupdate for ${n}/${i}") set(target-name "i18n-lang-${i}-module-${n}") list(APPEND target-names "${target-name}") - add_custom_target(${target-name} DEPENDS "${t2}" "${t}" COMMENT "") - add_dependencies("opentrack-${n}" "${target-name}") + add_custom_target(${target-name} DEPENDS "${t2}" COMMENT "") set_property(GLOBAL APPEND PROPERTY "opentrack-ts-files-${i}" "${t2}") set_property(GLOBAL APPEND PROPERTY "opentrack-ts-module-${n}" "${target-name}") endforeach() - add_custom_target("i18n-module-${n}" DEPENDS ${target-names}) + #add_custom_target("i18n-module-${n}" DEPENDS ${target-names}) endfunction() function(otr_merge_translations) otr_escape_string(i18n-pfx "${opentrack-i18n-pfx}") install(CODE "file(REMOVE_RECURSE \"\${CMAKE_INSTALL_PREFIX}/${i18n-pfx}\")") - get_property(variant GLOBAL PROPERTY opentrack-variant) - if(NOT ".${variant}" STREQUAL ".default") - set(force-skip-update TRUE) - else() - set(force-skip-update FALSE) - endif() - - set(all-qm-files "") - get_property(all-modules GLOBAL PROPERTY opentrack-all-modules) set(all-ts-targets "") @@ -65,7 +57,6 @@ function(otr_merge_translations) get_property(lrelease-binary TARGET "${Qt5_LRELEASE_EXECUTABLE}" PROPERTY IMPORTED_LOCATION) set(qm-output "${CMAKE_CURRENT_BINARY_DIR}/${i}.qm") - list(APPEND all-qm-files "${qm-output}") # whines about duplicate messages since tracker-pt-base is static if(WIN32) @@ -82,13 +73,15 @@ function(otr_merge_translations) ${ts-files} -qm "${qm-output}" ${to-null} - DEPENDS ${all-ts-targets} ${ts-files} + DEPENDS ${all-ts-targets} COMMENT "Running lrelease for ${i}") + add_custom_target("i18n-qm-${i}" DEPENDS "${qm-output}") + add_dependencies(i18n "i18n-qm-${i}") + install(FILES "${qm-output}" DESTINATION "${CMAKE_INSTALL_PREFIX}/${opentrack-i18n-pfx}" PERMISSIONS ${opentrack-perms-file}) endforeach() - add_custom_target(i18n ALL DEPENDS ${all-qm-files}) endfunction() diff --git a/cmake/opentrack-install.cmake b/cmake/opentrack-install.cmake index 45f6ce18..d15951e9 100644 --- a/cmake/opentrack-install.cmake +++ b/cmake/opentrack-install.cmake @@ -14,32 +14,35 @@ macro(otr_install_dir path) ) endmacro() +function(otr_setup_refresh_install_dir) + if((NOT CMAKE_INSTALL_PREFIX STREQUAL "") AND (NOT opentrack-doc-src-pfx STREQUAL "")) + otr_escape_string(dir "${CMAKE_INSTALL_PREFIX}/${opentrack-doc-src-pfx}/") + install(CODE "file(REMOVE_RECURSE \"${dir}\")") + endif() +endfunction() + function(install_sources) - if(FALSE) - otr_setup_refresh_install_dir() - get_property(source-dirs GLOBAL PROPERTY opentrack-all-source-dirs) - foreach(k ${source-dirs}) - file(RELATIVE_PATH dest "${CMAKE_SOURCE_DIR}" "${k}") - otr_install_dir("${opentrack-doc-src-pfx}" "${dest}") - endforeach() + otr_setup_refresh_install_dir() + get_property(source-dirs GLOBAL PROPERTY opentrack-all-source-dirs) + foreach(k ${source-dirs}) + file(RELATIVE_PATH dest "${CMAKE_SOURCE_DIR}" "${k}") + otr_install_dir("${opentrack-doc-src-pfx}" "${dest}") + endforeach() - otr_install_dir("${opentrack-doc-src-pfx}" "${CMAKE_SOURCE_DIR}/cmake") - otr_install_dir("${opentrack-doc-src-pfx}" "${CMAKE_SOURCE_DIR}/bin") + otr_install_dir("${opentrack-doc-src-pfx}" "${CMAKE_SOURCE_DIR}/cmake") + otr_install_dir("${opentrack-doc-src-pfx}" "${CMAKE_SOURCE_DIR}/bin") - otr_install_misc("${opentrack-doc-src-pfx}" FILES "${CMAKE_SOURCE_DIR}/CMakeLists.txt") - otr_install_misc("${opentrack-doc-src-pfx}" FILES "${CMAKE_SOURCE_DIR}/README.md") - otr_install_misc("${opentrack-doc-src-pfx}" FILES "${CMAKE_SOURCE_DIR}/.github/CONTRIBUTING.md") - otr_install_misc("${opentrack-doc-src-pfx}" FILES "${CMAKE_SOURCE_DIR}/WARRANTY.txt") - otr_install_misc("${opentrack-doc-src-pfx}" FILES "${CMAKE_SOURCE_DIR}/OPENTRACK-LICENSING.txt") - otr_install_misc("${opentrack-doc-src-pfx}" FILES "${CMAKE_SOURCE_DIR}/AUTHORS.md") - endif() + otr_install_misc("${opentrack-doc-src-pfx}" FILES "${CMAKE_SOURCE_DIR}/CMakeLists.txt") + otr_install_misc("${opentrack-doc-pfx}" FILES "${CMAKE_SOURCE_DIR}/README.md") + otr_install_misc("${opentrack-doc-pfx}" FILES "${CMAKE_SOURCE_DIR}/.github/CONTRIBUTING.md") + otr_install_misc("${opentrack-doc-pfx}" FILES "${CMAKE_SOURCE_DIR}/WARRANTY.txt") + otr_install_misc("${opentrack-doc-pfx}" FILES "${CMAKE_SOURCE_DIR}/OPENTRACK-LICENSING.txt") + otr_install_misc("${opentrack-doc-pfx}" FILES "${CMAKE_SOURCE_DIR}/AUTHORS.md") endfunction() function(cleanup_visual_studio_debug) - #if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows") - otr_escape_string(pfx "${CMAKE_INSTALL_PREFIX}") - install(CODE "file(REMOVE_RECURSE \"${pfx}/.vs\")") - #endif() + otr_escape_string(pfx "${CMAKE_INSTALL_PREFIX}") + install(CODE "file(REMOVE_RECURSE \"${pfx}/.vs\")") endfunction() otr_install_dir("${opentrack-doc-pfx}" ${CMAKE_SOURCE_DIR}/3rdparty-notices) @@ -53,17 +56,16 @@ endif() otr_install_misc("${opentrack-doc-pfx}" FILES ${CMAKE_SOURCE_DIR}/README.md) -otr_install_misc("${opentrack-doc-src-pfx}" FILES "${CMAKE_SOURCE_DIR}/CMakeLists.txt") -otr_install_misc("${opentrack-doc-src-pfx}" FILES "${CMAKE_SOURCE_DIR}/README.md") -otr_install_misc("${opentrack-doc-src-pfx}" FILES "${CMAKE_SOURCE_DIR}/.github/CONTRIBUTING.md") -otr_install_misc("${opentrack-doc-src-pfx}" FILES "${CMAKE_SOURCE_DIR}/WARRANTY.txt") -otr_install_misc("${opentrack-doc-src-pfx}" FILES "${CMAKE_SOURCE_DIR}/OPENTRACK-LICENSING.txt") -otr_install_misc("${opentrack-doc-src-pfx}" FILES "${CMAKE_SOURCE_DIR}/AUTHORS.md") +otr_install_misc("${opentrack-doc-pfx}" FILES "${CMAKE_SOURCE_DIR}/README.md") +otr_install_misc("${opentrack-doc-pfx}" FILES "${CMAKE_SOURCE_DIR}/.github/CONTRIBUTING.md") +otr_install_misc("${opentrack-doc-pfx}" FILES "${CMAKE_SOURCE_DIR}/WARRANTY.txt") +otr_install_misc("${opentrack-doc-pfx}" FILES "${CMAKE_SOURCE_DIR}/OPENTRACK-LICENSING.txt") +otr_install_misc("${opentrack-doc-pfx}" FILES "${CMAKE_SOURCE_DIR}/AUTHORS.md") # this must be done last because the files may be in use already # do it last so in case of file-in-use failure, the rest is installed -if(MSVC AND CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows") +if(CMAKE_HOST_SYSTEM_NAME STREQUAL "Windows") cleanup_visual_studio_debug() endif() diff --git a/cmake/opentrack-platform.cmake b/cmake/opentrack-platform.cmake index 2df0bfe0..365aba62 100644 --- a/cmake/opentrack-platform.cmake +++ b/cmake/opentrack-platform.cmake @@ -37,7 +37,7 @@ if(APPLE) endif() endif() -if(MSVC AND MSVC_VERSION LESS "1900" AND NOT ".${CMAKE_CXX_COMPILER_ID}" STREQUAL ".Clang") +if(MSVC AND MSVC_VERSION LESS "1915" AND NOT ".${CMAKE_CXX_COMPILER_ID}" STREQUAL ".Clang") message(FATAL_ERROR "Visual Studio too old. Use Visual Studio 2017 Preview or newer.") endif() @@ -72,11 +72,9 @@ if(MSVC) add_definitions(-D_SILENCE_CXX17_NEGATORS_DEPRECATION_WARNING) add_definitions(-D_SILENCE_CXX17_ADAPTOR_TYPEDEFS_DEPRECATION_WARNING) - if(MSVC_VERSION GREATER 1909) # visual studio 2017 - set(__stuff "-permissive-") - set(CMAKE_CXX_FLAGS "${__stuff} ${CMAKE_CXX_FLAGS}") - set(CMAKE_C_FLAGS "${__stuff} ${CMAKE_CXX_FLAGS}") - endif() + set(__stuff "-permissive- -diagnostics:caret") + set(CMAKE_CXX_FLAGS "${__stuff} ${CMAKE_CXX_FLAGS}") + set(CMAKE_C_FLAGS "${__stuff} ${CMAKE_CXX_FLAGS}") if(opentrack-64bit) set(ent "-HIGHENTROPYVA") @@ -114,13 +112,10 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON) include_directories("${CMAKE_SOURCE_DIR}") -if(CMAKE_COMPILER_IS_GNUCXX AND UNIX) +if(CMAKE_COMPILER_IS_GNUCXX AND NOT APPLE) set(_common "-fvisibility=hidden") set(CMAKE_C_FLAGS "${_common} ${CMAKE_C_FLAGS}") - set(CMAKE_CXX_FLAGS "${_common} ${CMAKE_CXX_FLAGS}") - if(NOT APPLE) - set(CMAKE_CXX_FLAGS "-fuse-cxa-atexit ${CMAKE_CXX_FLAGS}") - endif() + set(CMAKE_CXX_FLAGS "${_common} -fuse-cxa-atexit ${CMAKE_CXX_FLAGS}") endif() if(APPLE) @@ -149,13 +144,10 @@ if(MINGW) endif() # assume binutils -if(LINUX) +if(UNIX AND NOT APPLE) foreach (i SHARED MODULE EXE) set(CMAKE_${i}_LINKER_FLAGS "-Wl,-z,relro,-z,now,--exclude-libs,ALL ${CMAKE_${i}_LINKER_FLAGS}") endforeach() -endif() - -if(UNIX AND NOT APPLE) include(opentrack-pkg-config) endif() |