diff options
Diffstat (limited to 'CMakeLists.txt')
| -rw-r--r-- | CMakeLists.txt | 95 |
1 files changed, 78 insertions, 17 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index 7859958a..c28ead74 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -21,24 +21,53 @@ # ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR # OTHER DEALINGS IN THE SOFTWARE. -set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/") -include(opentrack-check-build-directory) -include(opentrack-mrproper) +set(CMAKE_DISABLE_IN_SOURCE_BUILD ON) -project(opentrack) -cmake_minimum_required(VERSION 2.8.11) +set(CMAKE_C_LINKER_PREFERENCE_PROPAGATES OFF) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES ON) + +list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/") include(opentrack-policy NO_POLICY_SCOPE) + +cmake_minimum_required(VERSION 3.13 FATAL_ERROR) +project(opentrack) + +# must be prior to CMakeDetermineCXXCompiler due to rpath +if(CMAKE_INSTALL_PREFIX_INITIALIZED_TO_DEFAULT OR NOT CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/install" CACHE PATH "" FORCE) +endif() + +if(NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE "RELEASE" CACHE STRING "" FORCE) +endif() + +if(POLICY CMP0083) + cmake_policy(SET CMP0083 NEW) + include(CheckPIESupported) + check_pie_supported() +endif() + +include(CMakeDetermineCCompiler) +include(CMakeDetermineCXXCompiler) + +if(CMAKE_COMPILER_IS_GNUCXX AND NOT __otr_compile_flags_set) + set(__otr_compile_flags_set TRUE CACHE INTERNAL "" FORCE) + foreach(i C CXX) + set(CMAKE_${i}_FLAGS_RELEASE "-O3 -march=native" CACHE STRING "" FORCE) + set(CMAKE_${i}_FLAGS "-ggdb -Wall -Wextra -Wpedantic" CACHE STRING "" FORCE) + endforeach() +endif() + +include(CMakeParseArguments) + include(opentrack-load-user-settings) +include(opentrack-mrproper) set_property(GLOBAL PROPERTY opentrack-all-modules "") set_property(GLOBAL PROPERTY opentrack-all-source-dirs "") -set(opentrack_all-translations "" CACHE STRING "Leave empty for default") -if(".${opentrack_all-translations}" STREQUAL ".") - set(opentrack_all-translations "nl_NL;ru_RU;stub;zh_CN") -endif() +set(opentrack_all-translations "de_DE;nl_NL;ru_RU;stub;zh_CN") -include(opentrack-word-size) include(opentrack-hier) include(opentrack-platform) include(opentrack-i18n) @@ -46,29 +75,61 @@ include(opentrack-boilerplate) include(opentrack-qt) include(opentrack-version) -include(opentrack-install) include(opentrack-variant) if(WIN32) enable_language(RC) endif() -add_custom_target(mrproper COMMAND - "${CMAKE_COMMAND}" -P - "${CMAKE_SOURCE_DIR}/cmake/opentrack-clean-build-directory.cmake" +add_custom_target(mrproper + COMMAND "${CMAKE_COMMAND}" -P + "${CMAKE_SOURCE_DIR}/cmake/mrproper.cmake" WORKING_DIRECTORY "${CMAKE_BINARY_DIR}") function(otr_add_subdirs) - otr_dist_select_variant() + otr_init_variant() get_property(_globs GLOBAL PROPERTY opentrack-subprojects) otr_add_target_dirs(_globbed ${_globs}) foreach(k ${_globbed}) get_filename_component(k "${k}" DIRECTORY) - add_subdirectory("${k}") + # we want to compile macosx last so we can run proper install scripts + if (k MATCHES "macosx$") + set(o ${k}) + else() + add_subdirectory("${k}") + endif() endforeach() + # Add macosx last + add_subdirectory("${o}") endfunction() otr_add_subdirs() otr_merge_translations() -#install_sources() + +include(opentrack-install) + +message("Install directory:") +message(" ${CMAKE_INSTALL_PREFIX}") +string(TOUPPER "${CMAKE_BUILD_TYPE}" CMAKE_BUILD_TYPE) +message("Compile flags:") +#foreach(j C CXX) +foreach(j CXX) + foreach(i "" "_${CMAKE_BUILD_TYPE}") + message(" ${j}${i}: ${CMAKE_${j}_FLAGS${i}}") + endforeach() +endforeach() + +message("Link flags:") +foreach(j "" "_${CMAKE_BUILD_TYPE}") + #foreach(i EXE SHARED) + foreach(i SHARED) + message(" LINK_${i}${j}: ${CMAKE_${i}_LINKER_FLAGS${j}}") + endforeach() +endforeach() + +message("Static archive flags:") +foreach(k "" "_${CMAKE_BUILD_TYPE}") + message(" STATIC${k}: ${CMAKE_STATIC_LINKER_FLAGS${k}}") +endforeach() +message("--") |
