summaryrefslogtreecommitdiffhomepage
path: root/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake')
-rw-r--r--cmake/opentrack-boilerplate.cmake38
-rw-r--r--cmake/opentrack-platform.cmake2
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)