Skip to content

Commit 529b638

Browse files
committed
OSX Installer: Move libforge and ArrayFireConfig into common sub package
* libforge and ArrayFireConfig.cmake files are now in a common package * This package is no visible at install time * The package is enabled if any of the backends are enabled (like unified) * This is done so that the common files are installed only once rather than by each backend package
1 parent 96baaf9 commit 529b638

2 files changed

Lines changed: 35 additions & 4 deletions

File tree

CMakeModules/osx_install/OSXInstaller.cmake

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,15 +13,28 @@ SET(OSX_INSTALL_DIR ${CMAKE_MODULE_PATH}/osx_install)
1313
################################################################################
1414
SET(OSX_TEMP "${CMAKE_BINARY_DIR}/osx_install_files")
1515

16+
# Common files - libforge, ArrayFireConfig*.cmake
1617
FILE(GLOB COMMONLIB "${CMAKE_INSTALL_PREFIX}/${AF_INSTALL_LIB_DIR}/libforge*.dylib")
1718
FILE(GLOB COMMONCMAKE "${CMAKE_INSTALL_PREFIX}/${AF_INSTALL_CMAKE_DIR}/ArrayFireConfig*.cmake")
1819

20+
ADD_CUSTOM_TARGET(OSX_INSTALL_SETUP_COMMON)
21+
FOREACH(SRC ${COMMONLIB} ${COMMONCMAKE})
22+
FILE(RELATIVE_PATH SRC_REL ${CMAKE_INSTALL_PREFIX} ${SRC})
23+
ADD_CUSTOM_COMMAND(TARGET OSX_INSTALL_SETUP_COMMON PRE_BUILD
24+
COMMAND ${CMAKE_COMMAND} -E copy
25+
${SRC} "${OSX_TEMP}/common/${SRC_REL}"
26+
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
27+
COMMENT "Copying Common files to temporary OSX Install Dir"
28+
)
29+
ENDFOREACH()
30+
31+
# Backends - CPU, CUDA, OpenCL, Unified
1932
MACRO(OSX_INSTALL_SETUP BACKEND LIB)
2033
FILE(GLOB ${BACKEND}LIB "${CMAKE_INSTALL_PREFIX}/${AF_INSTALL_LIB_DIR}/lib${LIB}*.dylib")
2134
FILE(GLOB ${BACKEND}CMAKE "${CMAKE_INSTALL_PREFIX}/${AF_INSTALL_CMAKE_DIR}/ArrayFire${BACKEND}*.cmake")
2235

2336
ADD_CUSTOM_TARGET(OSX_INSTALL_SETUP_${BACKEND})
24-
FOREACH(SRC ${${BACKEND}LIB} ${COMMONLIB} ${${BACKEND}CMAKE} ${COMMONCMAKE})
37+
FOREACH(SRC ${${BACKEND}LIB} ${${BACKEND}CMAKE})
2538
FILE(RELATIVE_PATH SRC_REL ${CMAKE_INSTALL_PREFIX} ${SRC})
2639
ADD_CUSTOM_COMMAND(TARGET OSX_INSTALL_SETUP_${BACKEND} PRE_BUILD
2740
COMMAND ${CMAKE_COMMAND} -E copy
@@ -157,6 +170,14 @@ PKG_BUILD( PKG_NAME ArrayFireUNIFIED
157170
PATH_TO_FILES ${OSX_TEMP}/Unified
158171
FILTERS cpu cuda opencl)
159172

173+
PKG_BUILD( PKG_NAME ArrayFireCommon
174+
DEPENDS OSX_INSTALL_SETUP_COMMON
175+
TARGETS common_package
176+
INSTALL_LOCATION /usr/local
177+
IDENTIFIER com.arrayfire.pkg.arrayfire.libcommon
178+
PATH_TO_FILES ${OSX_TEMP}/common
179+
FILTERS cpu cuda opencl unified)
180+
160181
PKG_BUILD( PKG_NAME ArrayFireHeaders
161182
DEPENDS OSX_INSTALL_SETUP_INCLUDE
162183
TARGETS header_package
@@ -180,5 +201,5 @@ PKG_BUILD( PKG_NAME ArrayFireDoc
180201
PATH_TO_FILES ${OSX_TEMP}/doc
181202
FILTERS cmake)
182203

183-
PRODUCT_BUILD(DEPENDS ${cpu_package} ${cuda_package} ${opencl_package} ${unified_package} ${header_package} ${examples_package} ${doc_package})
204+
PRODUCT_BUILD(DEPENDS ${cpu_package} ${cuda_package} ${opencl_package} ${unified_package} ${common_package} ${header_package} ${examples_package} ${doc_package})
184205

CMakeModules/osx_install/distribution.dist

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,21 +19,23 @@
1919
<pkg-ref id="com.arrayfire.arrayfire.inc" version="${AF_VERSION}" onConclusion="none">ArrayFireHeaders.pkg</pkg-ref>
2020
<pkg-ref id="com.arrayfire.arrayfire.examples" version="${AF_VERSION}" onConclusion="none">ArrayFireExamples.pkg</pkg-ref>
2121
<pkg-ref id="com.arrayfire.arrayfire.doc" version="${AF_VERSION}" onConclusion="none">ArrayFireDoc.pkg</pkg-ref>
22+
<pkg-ref id="com.arrayfire.arrayfire.libcommon" version="${AF_VERSION}" onConclusion="none">ArrayFireCommon.pkg</pkg-ref>
2223
<options customize="always" require-scripts="false"/>
2324
<choices-outline>
2425
<line choice="libs">
2526
<line choice="cpu_lib"/>
2627
<line choice="cuda_lib"/>
2728
<line choice="opencl_lib"/>
2829
<line choice="com.arrayfire.arrayfire.unified.lib"/>
30+
<line choice="com.arrayfire.arrayfire.libcommon"/>
2931
</line>
3032
<line choice="com.arrayfire.arrayfire.inc"/>
3133
<line choice="com.arrayfire.arrayfire.examples"/>
3234
<line choice="com.arrayfire.arrayfire.doc"/>
3335
</choices-outline>
3436
<choice id="libs" title="ArrayFire Libraries" visible="true" />
35-
<choice title="ArrayFire CPU Libraries. Also installs the corresponding CMake config files."
36-
description="ArrayFire targeting CPUs."
37+
<choice title="CPU Libraries"
38+
description="ArrayFire targeting CPUs. Also installs the corresponding CMake config files."
3739
id="cpu_lib" visible="true" enabled="true">
3840
<pkg-ref id="com.arrayfire.arrayfire.cpu.lib"/>
3941
</choice>
@@ -55,6 +57,14 @@
5557
enabled="CheckBackendSelected()">
5658
<pkg-ref id="com.arrayfire.arrayfire.unified.lib"/>
5759
</choice>
60+
<choice title="Library Common"
61+
description="Installs Forge and ArrayFireConfig.cmake files"
62+
id="com.arrayfire.arrayfire.libcommon"
63+
selected="CheckBackendSelected()"
64+
visible="false"
65+
enabled="CheckBackendSelected()">
66+
<pkg-ref id="com.arrayfire.arrayfire.libcommon"/>
67+
</choice>
5868
<choice title="ArrayFire Headers" description="ArrayFire Headers" id="com.arrayfire.arrayfire.inc" visible="true" enabled="true">
5969
<pkg-ref id="com.arrayfire.arrayfire.inc"/>
6070
</choice>

0 commit comments

Comments
 (0)