blob: 976111f717ba626a58e81dcdb2294017c69e1e5f (
plain)
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
111
112
113
114
|
if(WIN32)
install(
FILES ../bin/ibmsvc.xml ../bin/ibqbs.bat
DESTINATION "${QBS_APP_INSTALL_DIR}"
)
endif()
# below we copy some files that are required to run qbs from the build directory
# emulating the same layout we will have after the installation
# copy & install dmgbuild
install(
PROGRAMS ../src/3rdparty/python/bin/dmgbuild
DESTINATION "${QBS_LIBEXEC_INSTALL_DIR}"
)
set(_DMGBUILD_INSTALL_PATH ${CMAKE_BINARY_DIR}/${QBS_OUTPUT_PREFIX}${QBS_LIBEXEC_INSTALL_DIR}/dmgbuild)
add_custom_command(
OUTPUT ${_DMGBUILD_INSTALL_PATH}
COMMAND ${CMAKE_COMMAND} -E copy
${CMAKE_CURRENT_SOURCE_DIR}/../src/3rdparty/python/bin/dmgbuild
${CMAKE_BINARY_DIR}/${QBS_OUTPUT_PREFIX}${QBS_LIBEXEC_INSTALL_DIR}
COMMENT "Copying dmgbuild script"
)
# copy & install python packages
set(_SITE_PACKAGES_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../src/3rdparty/python/lib/python2.7/site-packages/)
file(GLOB_RECURSE _SITE_PACKAGES_RELATIVE RELATIVE "${_SITE_PACKAGES_DIR}" "${_SITE_PACKAGES_DIR}/*.py")
set(_SITE_PACKAGES_SRC ${_SITE_PACKAGES_RELATIVE})
list_transform_prepend(_SITE_PACKAGES_SRC "${_SITE_PACKAGES_DIR}/")
set(_SITE_PACKAGES_DST ${_SITE_PACKAGES_RELATIVE})
list_transform_prepend(_SITE_PACKAGES_DST "${CMAKE_BINARY_DIR}/${QBS_OUTPUT_PREFIX}${QBS_RESOURCES_INSTALL_DIR}/qbs/python/")
add_custom_command(
OUTPUT ${_SITE_PACKAGES_DST}
DEPENDS ${_SITE_PACKAGES_SRC}
COMMAND ${CMAKE_COMMAND} -E copy_directory
"${_SITE_PACKAGES_DIR}"
${CMAKE_BINARY_DIR}/${QBS_OUTPUT_PREFIX}${QBS_RESOURCES_INSTALL_DIR}/qbs/python
COMMENT "Copying Python packages"
)
install(
# trailing slash avoid copying the 'site-packages' dir and only copies its content
DIRECTORY "${_SITE_PACKAGES_DIR}"
DESTINATION "${QBS_RESOURCES_INSTALL_DIR}/qbs/python"
FILES_MATCHING PATTERN "*.py"
)
# copy & install the "share/qbs" dir
file(GLOB_RECURSE _QBS_RESOURCES_RELATIVE RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/qbs/*")
set(_QBS_RESOURCES_SRC ${_QBS_RESOURCES_RELATIVE})
list_transform_prepend(_QBS_RESOURCES_SRC "${CMAKE_CURRENT_SOURCE_DIR}/")
set(_QBS_RESOURCES_DST ${_QBS_RESOURCES_RELATIVE})
list_transform_prepend(_QBS_RESOURCES_DST "${CMAKE_BINARY_DIR}/${QBS_OUTPUT_PREFIX}${QBS_RESOURCES_INSTALL_DIR}/")
add_custom_command(
OUTPUT ${_QBS_RESOURCES_DST}
DEPENDS ${_QBS_RESOURCES_SRC}
COMMAND ${CMAKE_COMMAND} -E copy_directory
${CMAKE_CURRENT_SOURCE_DIR}/qbs
${CMAKE_BINARY_DIR}/${QBS_OUTPUT_PREFIX}${QBS_RESOURCES_INSTALL_DIR}/qbs
COMMENT "Copying QBS resources"
)
install(
DIRECTORY qbs
DESTINATION "${QBS_RESOURCES_INSTALL_DIR}")
# install examples dir
install(
DIRECTORY ../examples
DESTINATION "${QBS_RESOURCES_INSTALL_DIR}/qbs"
)
set(_QMLTYPES_INSTALL_PATH "${PROJECT_BINARY_DIR}/resources-build/install-root/share/qbs/qml-type-descriptions/qbs.qmltypes")
get_update_path_command(UPDATE_PATH_COMMAND)
get_target_property(_QBS_OUTPUT_DIR qbs RUNTIME_OUTPUT_DIRECTORY)
add_custom_command(
OUTPUT "${_QMLTYPES_INSTALL_PATH}"
COMMAND ${CMAKE_COMMAND} -E env "${UPDATE_PATH_COMMAND}" ${_QBS_OUTPUT_DIR}/qbs
resolve
--settings-dir ${PROJECT_BINARY_DIR}/settings
-f ${PROJECT_SOURCE_DIR}/qbs.qbs
-d ${PROJECT_BINARY_DIR}/
config:resources-build
qbs.installPrefix:""
project.withCode:false
project.withDocumentation:false
profile:none
COMMAND ${CMAKE_COMMAND} -E env "${UPDATE_PATH_COMMAND}" ${_QBS_OUTPUT_DIR}/qbs
build
--settings-dir ${PROJECT_BINARY_DIR}/settings
-f ${PROJECT_SOURCE_DIR}/qbs.qbs
-d ${PROJECT_BINARY_DIR}/
config:resources-build
-p "qbs resources"
DEPENDS qbs "${_QBS_RESOURCES_DST}" qbs_processlauncher
)
add_custom_target(
BuildQbsResources ALL
DEPENDS
"${_DMGBUILD_INSTALL_PATH}"
${_SITE_PACKAGES_DST}
${_QBS_RESOURCES_DST}
"${_QMLTYPES_INSTALL_PATH}"
)
install(
DIRECTORY ${PROJECT_BINARY_DIR}/resources-build/install-root/share/qbs/qml-type-descriptions
DESTINATION "${QBS_RESOURCES_INSTALL_DIR}/qbs"
)
|