-
Notifications
You must be signed in to change notification settings - Fork 14
Expand file tree
/
Copy pathCPack.win32.in.cmake
More file actions
85 lines (70 loc) · 3.95 KB
/
CPack.win32.in.cmake
File metadata and controls
85 lines (70 loc) · 3.95 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
SET(CPACK_GENERATOR "NSIS")
SET(CPACK_SOURCE_GENERATOR "ZIP")
SET(CMAKE_MODULE_PATH "${PROJECT_SOURCE_DIR}/resources/packaging/windows;${CMAKE_MODULE_PATH}")
SET(CPACK_PACKAGE_INSTALL_DIRECTORY "OpenFLUID-${OPENFLUID_VERSION_MAJOR}.${OPENFLUID_VERSION_MINOR}.${OPENFLUID_VERSION_PATCH}")
SET(CPACK_PACKAGE_NAME "OpenFLUID")
SET(CPACK_NSIS_DISPLAY_NAME "OpenFLUID")
SET(CPACK_NSIS_HELP_LINK "${OPENFLUID_URL_OFFICIAL}")
SET(CPACK_NSIS_URL_INFO_ABOUT "${OPENFLUID_URL_OFFICIAL}")
SET(CPACK_NSIS_CONTACT "OpenFLUID contact <${OPENFLUID_EMAIL_CONTACT}>")
SET(CPACK_PACKAGE_ICON "${PROJECT_SOURCE_DIR}/resources/packaging/windows\\\\openfluid_logo_NSIS.bmp")
SET(CPACK_NSIS_MENU_LINKS
"${OPENFLUID_URL_OFFICIAL}" "OpenFLUID web site"
"${OPENFLUID_URL_COMMUNITY}" "OpenFLUID community site")
SET(CPACK_PACKAGE_EXECUTABLES openfluid-builder;OpenFLUID-Builder
openfluid-devstudio;OpenFLUID-DevStudio)
SET(CPACK_PACKAGE_INSTALL_REGISTRY_KEY "${CPACK_PACKAGE_NAME} ${OPENFLUID_VERSION_FULL}")
SET(CPACK_NSIS_MODIFY_PATH ON)
# This packaging includes Qt libs and GDAL libs
# It requires the OFBUILD_SUPPORT_DIR environment variable
# support libraries
IF(OFBUILD_SUPPORT_DIR)
FILE(TO_CMAKE_PATH "$ENV{OFBUILD_SUPPORT_DIR}" OFBUILD_SUPPORT_DIR_MOD)
FILE(TO_CMAKE_PATH "$ENV{OFBUILD_SUPPORT_DIR}/bin" OFBUILD_SUPPORT_BINDIR_MOD)
FILE(TO_CMAKE_PATH "$ENV{OFBUILD_SUPPORT_DIR}/lib" OFBUILD_SUPPORT_LIBDIR_MOD)
# TODO replace by cleaner way
FOREACH(PAT "libgdal*" "libcurl*" "libstdc++*" "libwinpthread*" "libboost_system*" "libboost_filesystem*" "libboost_process*" "libidn2*" "libicu*" "libmd4*" "libbrotlidec" "libcrypto-3-x64" "libnghttp2*" "libarchive-13" "libaec-0" "libparquet*" "libarrow*" "libmd4c*")
INSTALL(DIRECTORY "${OFBUILD_SUPPORT_BINDIR_MOD}/" DESTINATION ${OFBUILD_BIN_INSTALL_PATH} FILES_MATCHING PATTERN "${PAT}.dll")
ENDFOREACH()
# GDAL
INSTALL(DIRECTORY "${OFBUILD_SUPPORT_LIBDIR_MOD}/" DESTINATION ${OFBUILD_BIN_INSTALL_PATH} FILES_MATCHING PATTERN "libgdal*.dll")
#INSTALL(DIRECTORY "C:/craftingDeps/mingw64/lib/" DESTINATION ${OFBUILD_LIB_INSTALL_PATH}) # TODO replace by proper deps installation system
ELSE()
MESSAGE(WARNING "environment variable OFBUILD_SUPPORT_DIR is not set!")
ENDIF()
IF(OFBUILD_ENABLE_GUI)
# Qt
SET(WINDEPLOYQT_TARGETS)
IF (QT_VERSION_MAJOR LESS 6)
FIND_PROGRAM(WINDEPLOYQT_COMMAND NAMES windeployqt5 windeployqt5.exe windeployqt windeployqt.exe)
ELSE()
FIND_PROGRAM(WINDEPLOYQT_COMMAND NAMES windeployqt6 windeployqt6.exe windeployqt windeployqt.exe)
ENDIF()
IF(OFBUILD_ENABLE_APP_BUILDER)
LIST(APPEND WINDEPLOYQT_TARGETS openfluid-builder)
ENDIF()
IF(OFBUILD_ENABLE_APP_DEVSTUDIO)
LIST(APPEND WINDEPLOYQT_TARGETS openfluid-devstudio)
ENDIF()
FOREACH(CURRENT_TARGET ${WINDEPLOYQT_TARGETS})
INSTALL(CODE
"
FILE(READ \"${CMAKE_BINARY_DIR}/${CURRENT_TARGET}_path.txt\" CURRENT_TARGET_PATH)
EXECUTE_PROCESS(COMMAND ${WINDEPLOYQT_COMMAND}
\"\${CURRENT_TARGET_PATH}\"
--dir \"\${CMAKE_INSTALL_PREFIX}/${OFBUILD_BIN_INSTALL_PATH}\"
--libdir \"\${CMAKE_INSTALL_PREFIX}/${OFBUILD_BIN_INSTALL_PATH}\"
--compiler-runtime
-xml -network -concurrent
--release
--verbose 1
WORKING_DIRECTORY \"${CMAKE_BINARY_DIR}\"
OUTPUT_FILE windeployqt_exec_${CURRENT_TARGET}.log
ERROR_FILE windeployqt_exec_${CURRENT_TARGET}.err
RESULT_VARIABLE WDEPLOYQT_RESULT)
IF(WDEPLOYQT_RESULT)
MESSAGE(WARNING \"windeployqt failed for target: \${CURRENT_TARGET}. Check logs for details.\")
ENDIF()
")
ENDFOREACH()
ENDIF()