diff options
Diffstat (limited to 'cmake')
-rw-r--r-- | cmake/opentrack-boilerplate.cmake | 27 | ||||
-rw-r--r-- | cmake/opentrack-opencv.cmake | 12 | ||||
-rw-r--r-- | cmake/opentrack-qt.cmake | 41 |
3 files changed, 41 insertions, 39 deletions
diff --git a/cmake/opentrack-boilerplate.cmake b/cmake/opentrack-boilerplate.cmake index eaccfc4e..5a4d7c71 100644 --- a/cmake/opentrack-boilerplate.cmake +++ b/cmake/opentrack-boilerplate.cmake @@ -242,3 +242,30 @@ function(otr_add_target_dirs var) list(SORT projects) set("${var}" "${projects}" PARENT_SCOPE) endfunction() + +function(otr_pdb_for_dll varname path) + set("${varname}" "" PARENT_SCOPE) + get_filename_component(dir "${path}" DIRECTORY) + get_filename_component(name-only "${path}" NAME_WE) + set(pdb-path "${dir}/${name-only}.pdb") + if(EXISTS "${pdb-path}") + set("${varname}" "${pdb-path}" PARENT_SCOPE) + endif() +endfunction() + +function(otr_install_lib target dest) + get_property(path TARGET "${target}" PROPERTY "LOCATION_${CMAKE_BUILD_TYPE}") + if(path STREQUAL "") + get_property(path TARGET "${target}" PROPERTY "LOCATION") + endif() + if(path STREQUAL "") + message(FATAL_ERROR "Can't find ${target}") + endif() + string(TOLOWER "${path}" path_) + if(NOT path_ MATCHES "\\.(a|lib)$") + if(MSVC AND opentrack_install-debug-info) + otr_pdb_for_dll(pdb-path "${opentrack-hier-debug}") + endif() + install(FILES "${path}" DESTINATION "${dest}") + endif() +endfunction() diff --git a/cmake/opentrack-opencv.cmake b/cmake/opentrack-opencv.cmake new file mode 100644 index 00000000..4504e59f --- /dev/null +++ b/cmake/opentrack-opencv.cmake @@ -0,0 +1,12 @@ +include_guard(GLOBAL) + +include(opentrack-boilerplate) +find_package(OpenCV QUIET) + +function(otr_install_opencv_libs) + foreach(k core features2d calib3d flann imgcodecs imgproc videoio) + otr_install_lib("opencv_${k}" "${}opentrack-hier-pfx}") + endforeach() +endfunction() + +otr_install_opencv_libs() diff --git a/cmake/opentrack-qt.cmake b/cmake/opentrack-qt.cmake index 5a8c27a0..fbea4d1c 100644 --- a/cmake/opentrack-qt.cmake +++ b/cmake/opentrack-qt.cmake @@ -7,49 +7,12 @@ find_package(Qt5 COMPONENTS SerialPort QUIET) set(MY_QT_LIBS ${Qt5Core_LIBRARIES} ${Qt5Gui_LIBRARIES} ${Qt5Widgets_LIBRARIES} ${Qt5Network_LIBRARIES}) -function(otr_pdb_for_dll varname path) - set("${varname}" "" PARENT_SCOPE) - get_filename_component(dir "${path}" DIRECTORY) - get_filename_component(name-only "${path}" NAME_WE) - set(pdb-path "${dir}/${name-only}.pdb") - if(EXISTS "${pdb-path}") - set("${varname}" "${pdb-path}" PARENT_SCOPE) - endif() -endfunction() - function(otr_install_qt_libs) if(WIN32) foreach(i Qt5::Core Qt5::Gui Qt5::Network Qt5::SerialPort Qt5::Widgets) - get_property(path TARGET "${i}" PROPERTY "LOCATION_${CMAKE_BUILD_TYPE}") - if(path STREQUAL "") - get_property(path TARGET "${i}" PROPERTY LOCATION) - endif() - if(path STREQUAL "") - message(FATAL_ERROR "can't find ${i}") - endif() - install(FILES "${path}" DESTINATION .) - if(MSVC AND opentrack_install-debug-info) - otr_pdb_for_dll(pdb-path "${path}") - if(pdb-path) - install(FILES "${pdb-path}" DESTINATION "${opentrack-hier-debug}") - endif() - endif() + otr_install_lib(${i} ".") endforeach() - - get_property(path TARGET Qt5::QWindowsIntegrationPlugin PROPERTY "LOCATION_${CMAKE_BUILD_TYPE}") - if(path STREQUAL "") - get_property(path TARGET Qt5::QWindowsIntegrationPlugin PROPERTY LOCATION) - endif() - if(path STREQUAL "") - message(FATAL_ERROR "can't find Qt5::QWindowsIntegrationPlugin") - endif() - install(FILES "${path}" DESTINATION ./platforms) - if(MSVC AND opentrack_install-debug-info) - otr_pdb_for_dll(pdb-path "${path}") - if(pdb-path) - install(FILES "${pdb-path}" DESTINATION "${opentrack-hier-debug}") - endif() - endif() + otr_install_lib(Qt5::QWindowsIntegrationPlugin "./platforms") endif() endfunction() |