InstallDependencies.cmake
4.83 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
set(BR_INSTALL_DEPENDENCIES OFF CACHE BOOL "Install runtime dependencies.")
# OpenCV Libs
function(install_opencv_library lib)
if(${BR_INSTALL_DEPENDENCIES})
if(CMAKE_HOST_WIN32)
if(${CMAKE_BUILD_TYPE} MATCHES Debug)
set(BR_INSTALL_DEPENDENCIES_SUFFIX "d")
endif()
if(NOT MSVC)
set(BR_INSTALL_DEPENDENCIES_PREFIX "lib")
endif()
list(GET OpenCV_LIB_DIR 0 cv_lib_stripped)
install(FILES ${cv_lib_stripped}/../bin/${BR_INSTALL_DEPENDENCIES_PREFIX}${lib}${OpenCV_VERSION_MAJOR}${OpenCV_VERSION_MINOR}${OpenCV_VERSION_PATCH}${BR_INSTALL_DEPENDENCIES_SUFFIX}.dll DESTINATION bin)
else()
set(OpenCV_LIB_DIR "/usr/local/lib")
install(FILES ${OpenCV_LIB_DIR}/lib${lib}.${OpenCV_VERSION_MAJOR}.${OpenCV_VERSION_MINOR}.${OpenCV_VERSION_PATCH}${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION lib)
install(FILES ${OpenCV_LIB_DIR}/lib${lib}.${OpenCV_VERSION_MAJOR}.${OpenCV_VERSION_MINOR}${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION lib)
install(FILES ${OpenCV_LIB_DIR}/lib${lib}${CMAKE_SHARED_LIBRARY_SUFFIX} DESTINATION lib)
endif()
endif()
endfunction()
function(install_opencv_libraries libs)
foreach(lib ${${libs}})
install_opencv_library(${lib})
endforeach()
endfunction()
# Qt Libs
function(install_qt_library lib)
if(${BR_INSTALL_DEPENDENCIES})
if(CMAKE_HOST_WIN32)
if(${CMAKE_BUILD_TYPE} MATCHES Debug)
set(BR_INSTALL_DEPENDENCIES_SUFFIX "d")
endif()
install(FILES ${_qt5Core_install_prefix}/bin/Qt5${lib}${BR_INSTALL_DEPENDENCIES_SUFFIX}.dll DESTINATION bin)
elseif(CMAKE_HOST_APPLE)
install(DIRECTORY ${_qt5Core_install_prefix}/lib/Qt${lib}.framework DESTINATION lib)
else()
install(FILES ${_qt5Core_install_prefix}/lib/libQt5${lib}.so.5.${Qt5Core_VERSION_MINOR}.${Qt5Core_VERSION_PATCH} DESTINATION lib)
install(FILES ${_qt5Core_install_prefix}/lib/libQt5${lib}.so.5.${Qt5Core_VERSION_MINOR} DESTINATION lib)
install(FILES ${_qt5Core_install_prefix}/lib/libQt5${lib}.so.5 DESTINATION lib)
install(FILES ${_qt5Core_install_prefix}/lib/libQt5${lib}.so DESTINATION lib)
endif()
endif()
endfunction()
function(install_qt_libraries libs)
foreach(lib ${${libs}})
install_qt_library(${lib})
endforeach()
endfunction()
# Qt Plugins
function(install_qt_imageformats)
if(${BR_INSTALL_DEPENDENCIES})
set(IMAGE_FORMATS_DIR "${_qt5Core_install_prefix}/plugins/imageformats")
if(CMAKE_HOST_WIN32)
set(INSTALL_DEPENDENCIES_PREFIX "")
set(INSTALL_DEPENDENCIES_EXTENSION ".dll")
else()
set(INSTALL_DEPENDENCIES_PREFIX "lib")
set(INSTALL_DEPENDENCIES_EXTENSION ".dylib")
endif()
install(FILES ${IMAGE_FORMATS_DIR}/${INSTALL_DEPENDENCIES_PREFIX}qgif${INSTALL_DEPENDENCIES_EXTENSION}
${IMAGE_FORMATS_DIR}/${INSTALL_DEPENDENCIES_PREFIX}qico${INSTALL_DEPENDENCIES_EXTENSION}
${IMAGE_FORMATS_DIR}/${INSTALL_DEPENDENCIES_PREFIX}qjpeg${INSTALL_DEPENDENCIES_EXTENSION}
${IMAGE_FORMATS_DIR}/${INSTALL_DEPENDENCIES_PREFIX}qmng${INSTALL_DEPENDENCIES_EXTENSION}
${IMAGE_FORMATS_DIR}/${INSTALL_DEPENDENCIES_PREFIX}qsvg${INSTALL_DEPENDENCIES_EXTENSION}
${IMAGE_FORMATS_DIR}/${INSTALL_DEPENDENCIES_PREFIX}qtga${INSTALL_DEPENDENCIES_EXTENSION}
${IMAGE_FORMATS_DIR}/${INSTALL_DEPENDENCIES_PREFIX}qtiff${INSTALL_DEPENDENCIES_EXTENSION}
${IMAGE_FORMATS_DIR}/${INSTALL_DEPENDENCIES_PREFIX}qwbmp${INSTALL_DEPENDENCIES_EXTENSION}
DESTINATION bin/imageformats)
endif()
endfunction()
# Qt Other
function(install_qt_misc)
if(MSVC)
if(${CMAKE_BUILD_TYPE} MATCHES Debug)
set(BR_INSTALL_DEPENDENCIES_SUFFIX "d")
endif()
install(FILES ${_qt5Core_install_prefix}/bin/libGLESv2${BR_INSTALL_DEPENDENCIES_SUFFIX}.dll DESTINATION bin)
install(FILES ${_qt5Core_install_prefix}/bin/libEGL${BR_INSTALL_DEPENDENCIES_SUFFIX}.dll DESTINATION bin)
file(GLOB icudlls ${_qt5Core_install_prefix}/bin/icu*.dll)
install(FILES ${icudlls} DESTINATION bin)
file(GLOB d3dcomp ${_qt5Core_install_prefix}/bin/d3dcompiler_*.dll)
install(FILES ${d3dcomp} DESTINATION bin)
install(FILES ${_qt5Core_install_prefix}/plugins/platforms/qwindows${BR_INSTALL_DEPENDENCIES_SUFFIX}.dll DESTINATION bin/platforms)
endif()
endfunction()
# Compiler libraries
function(install_compiler_libraries)
include(InstallRequiredSystemLibraries)
if(${BR_INSTALL_DEPENDENCIES} AND MINGW)
set(MINGW_DIR "MINGW_DIR-NOTFOUND" CACHE PATH "MinGW Path")
get_filename_component(MINGW_DIR ${CMAKE_CXX_COMPILER} PATH)
install(FILES ${MINGW_DIR}/libgcc_s_sjlj-1.dll ${MINGW_DIR}/libstdc++-6.dll DESTINATION bin)
endif()
endfunction()
# R runtime
function(install_r_runtime)
if(WIN32)
find_path(R_DIR bin/Rscript.exe "C:/Program Files/R/*")
install(DIRECTORY ${R_DIR}/ DESTINATION R)
endif()
endfunction()