diff options
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/opentrack-boilerplate.cmake | 38 | ||||
-rw-r--r-- | cmake/opentrack-platform.cmake | 2 |
2 files changed, 25 insertions, 15 deletions
diff --git a/cmake/opentrack-boilerplate.cmake b/cmake/opentrack-boilerplate.cmake index b26b32e0..0a7ccfab 100644 --- a/cmake/opentrack-boilerplate.cmake +++ b/cmake/opentrack-boilerplate.cmake @@ -39,20 +39,23 @@ otr_write_library_paths() function(otr_glob_sources var) set(basedir "${CMAKE_CURRENT_SOURCE_DIR}") - foreach(dir . ${ARGN}) + foreach(i ui rc res cc cxx hh all) + set(${var}-${i} "") + endforeach() + foreach(dir ${ARGN}) set(dir "${basedir}/${dir}") - file(GLOB ${var}-cxx "${dir}/*.cpp") - file(GLOB ${var}-cc "${dir}/*.c") - file(GLOB ${var}-hh "${dir}/*.h" "${dir}/*.hpp" "${dir}/*.inc") - file(GLOB ${var}-res "${dir}/*.rc") - foreach(f ${var}-res) + file(GLOB cxx "${dir}/*.cpp") + file(GLOB cc "${dir}/*.c") + file(GLOB hh "${dir}/*.h" "${dir}/*.hpp" "${dir}/*.inc") + file(GLOB res "${dir}/*.rc") + foreach(f res) set_source_files_properties(${f} PROPERTIES LANGUAGE RC) endforeach() - file(GLOB ${var}-ui "${dir}/*.ui") - file(GLOB ${var}-rc "${dir}/*.qrc") - set(${var}-all ${${var}-cc} ${${var}-cxx} ${${var}-hh} ${${var}-res}) + file(GLOB ui "${dir}/*.ui") + file(GLOB rc "${dir}/*.qrc") + set(all ${cc} ${cxx} ${hh} ${res}) foreach(i ui rc res cc cxx hh all) - set(${var}-${i} "${${var}-${i}}" PARENT_SCOPE) + set(${var}-${i} "${${var}-${i}}" ${${i}} PARENT_SCOPE) endforeach() endforeach() endfunction() @@ -128,7 +131,7 @@ function(otr_module n_) if(NOT arg_SUBDIRS) otr_glob_sources(${n} .) else() - otr_glob_sources(${n} ${arg_SUBDIRS}) + otr_glob_sources(${n} . ${arg_SUBDIRS}) endif() list(APPEND ${n}-all ${arg_SOURCES}) @@ -201,7 +204,7 @@ function(otr_module n_) if(CMAKE_COMPILER_IS_CLANGXX AND (arg_EXECUTABLE OR NOT arg_BIN)) set(opts weak-vtables - header-hygiene + #header-hygiene ) foreach(k ${opts}) target_compile_options(${n} PRIVATE "-Wno-${k}") @@ -255,9 +258,14 @@ endfunction() function(otr_install_lib target dest) if(WIN32) - get_property(path TARGET "${target}" PROPERTY "LOCATION_${CMAKE_BUILD_TYPE}") - if(path STREQUAL "") - get_property(path TARGET "${target}" PROPERTY "LOCATION") + string(FIND "${target}" "/" idx) + if(idx EQUAL -1) + get_property(path TARGET "${target}" PROPERTY "LOCATION_${CMAKE_BUILD_TYPE}") + if(path STREQUAL "") + get_property(path TARGET "${target}" PROPERTY "LOCATION") + endif() + else() + set(path "${target}") endif() if(path STREQUAL "") message(FATAL_ERROR "Can't find ${target}") diff --git a/cmake/opentrack-platform.cmake b/cmake/opentrack-platform.cmake index be09d6db..e2a292dc 100644 --- a/cmake/opentrack-platform.cmake +++ b/cmake/opentrack-platform.cmake @@ -44,6 +44,8 @@ include_directories("${CMAKE_SOURCE_DIR}") set(opentrack_maintainer-mode FALSE CACHE INTERNAL "Select if developing core code (not modules)") +set(CMAKE_TRY_COMPILE_TARGET_TYPE STATIC_LIBRARY) + set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_DEFAULT 17) set(CMAKE_CXX_STANDARD_REQUIRED TRUE) |