[arrayfire] 61/79: Make osx installer based on targets. Style

Ghislain Vaillant ghisvail-guest at moszumanska.debian.org
Mon Jun 15 13:38:08 UTC 2015


This is an automated email from the git hooks/post-receive script.

ghisvail-guest pushed a commit to branch master
in repository arrayfire.

commit 0478325b8d414d113e822a44685527ac444465d3
Author: Umar Arshad <umar at arrayfire.com>
Date:   Thu Jun 11 15:30:27 2015 -0400

    Make osx installer based on targets. Style
---
 CMakeLists.txt                  |   4 ++
 CMakeModules/OSXInstaller.cmake | 129 +++++++++++++++++++++++-----------------
 2 files changed, 78 insertions(+), 55 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 49dda74..bbb22b5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -197,6 +197,10 @@ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/Install/ArrayFireConfig.cmake
     DESTINATION ${AF_INSTALL_CMAKE_DIR}
     COMPONENT cmake)
 
+IF(APPLE)
+    INCLUDE("${CMAKE_MODULE_PATH}/OSXInstaller.cmake")
+ENDIF(APPLE)
+
 ##
 # Packaging
 ##
diff --git a/CMakeModules/OSXInstaller.cmake b/CMakeModules/OSXInstaller.cmake
index 921f040..3a62db3 100644
--- a/CMakeModules/OSXInstaller.cmake
+++ b/CMakeModules/OSXInstaller.cmake
@@ -1,27 +1,36 @@
 #
 # Builds ArrayFire Installers for OSX
 #
-include(CMakeParseArguments)
-include(${CMAKE_MODULE_PATH}/Version.cmake)
+INCLUDE(CMakeParseArguments)
+INCLUDE(${CMAKE_MODULE_PATH}/Version.cmake)
 
-set(BIN2CPP_PROGRAM "bin2cpp")
+SET(BIN2CPP_PROGRAM "bin2cpp")
 
-function(PKG_BUILD)
-    cmake_parse_arguments(ARGS "" "INSTALL_LOCATION;IDENTIFIER;PATH_TO_FILES;PKG_NAME" "FILTERS" ${ARGN})
+FUNCTION(PKG_BUILD)
+    CMAKE_PARSE_ARGUMENTS(ARGS "" "INSTALL_LOCATION;IDENTIFIER;PATH_TO_FILES;PKG_NAME;TARGETS" "FILTERS" ${ARGN})
 
-    foreach(filter ${ARGS_FILTERS})
+    FOREACH(filter ${ARGS_FILTERS})
         LIST(APPEND  FILTER_LIST --filter ${filter})
-    endforeach()
-
-    EXECUTE_PROCESS(COMMAND pkgbuild    --install-location  ${ARGS_INSTALL_LOCATION}
-                                        --identifier        ${ARGS_IDENTIFIER}
-                                        --root ${ARGS_PATH_TO_FILES}
-                                        ${FILTER_LIST}
-                                        ${ARGS_PKG_NAME}
-                    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
-endfunction(PKG_BUILD)
-
-function(PRODUCT_BUILD)
+    ENDFOREACH()
+
+    SET(PACKAGE_NAME "${ARGS_PKG_NAME}.pkg")
+    ADD_CUSTOM_COMMAND( OUTPUT ${PACKAGE_NAME}
+                        DEPENDS ${ARGS_DEPENDS}
+                        COMMAND pkgbuild    --install-location  ${ARGS_INSTALL_LOCATION}
+                                            --identifier        ${ARGS_IDENTIFIER}
+                                            --root              ${ARGS_PATH_TO_FILES}
+                                            ${FILTER_LIST}
+                                            ${ARGS_PKG_NAME}.pkg
+                        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+                        COMMENT "Building ${ARGS_PKG_NAME} package"
+                )
+    ADD_CUSTOM_TARGET(${ARGS_PKG_NAME}_installer DEPENDS ${PACKAGE_NAME})
+
+    SET("${ARGS_TARGETS}" ${ARGS_PKG_NAME}_installer PARENT_SCOPE)
+ENDFUNCTION(PKG_BUILD)
+
+FUNCTION(PRODUCT_BUILD)
+    CMAKE_PARSE_ARGUMENTS(ARGS "" "" "DEPENDS" ${ARGN})
     SET(DISTRIBUTION_FILE       "${CMAKE_MODULE_PATH}/distribution.dist")
     SET(DISTRIBUTION_FILE_OUT   "${CMAKE_CURRENT_BINARY_DIR}/distribution.dist.out")
 
@@ -37,42 +46,52 @@ function(PRODUCT_BUILD)
     CONFIGURE_FILE(${README_FILE} ${README_FILE_OUT})
 
     SET(PACKAGE_NAME "Install ArrayFire.pkg")
-    EXECUTE_PROCESS(COMMAND productbuild    --distribution  ${DISTRIBUTION_FILE_OUT}
-                                            ${PACKAGE_NAME}
-                    WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
-endfunction(PRODUCT_BUILD)
-
-
-function(OSX_INSTALLER)
-    PKG_BUILD(  PKG_NAME        ArrayFireCPU.pkg
-                INSTALL_LOCATION /usr/local/lib
-                IDENTIFIER      com.arrayfire.arrayfire.cpu.lib
-                PATH_TO_FILES   package/lib
-                FILTERS         opencl cuda)
-
-    PKG_BUILD(  PKG_NAME        ArrayFireCUDA.pkg
-                INSTALL_LOCATION /usr/local/lib
-                IDENTIFIER      com.arrayfire.arrayfire.cuda.lib
-                PATH_TO_FILES   package/lib
-                FILTERS         cpu opencl)
-
-    PKG_BUILD(  PKG_NAME        ArrayFireOPENCL.pkg
-                INSTALL_LOCATION /usr/local/lib
-                IDENTIFIER      com.arrayfire.arrayfire.opencl.lib
-                PATH_TO_FILES   package/lib
-                FILTERS         cpu cuda)
-
-    PKG_BUILD(  PKG_NAME        ArrayFireHeaders.pkg
-                INSTALL_LOCATION /usr/local/include
-                IDENTIFIER      com.arrayfire.arrayfire.inc
-                PATH_TO_FILES   package/include)
-
-    PKG_BUILD(  PKG_NAME        ArrayFireExtra.pkg
-                INSTALL_LOCATION /usr/local/share
-                IDENTIFIER      com.arrayfire.arrayfire.extra
-                PATH_TO_FILES   package/share)
-
-    PRODUCT_BUILD()
-endfunction(OSX_INSTALLER)
-
+    ADD_CUSTOM_COMMAND( OUTPUT ${PACKAGE_NAME}
+                        DEPENDS ${ARGS_DEPENDS}
+                        COMMAND pwd
+                        COMMAND productbuild    --distribution  ${DISTRIBUTION_FILE_OUT}
+                                                ${PACKAGE_NAME}
+                        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+                        COMMENT "Creating ArrayFire.pkg OSX Installer")
+    ADD_CUSTOM_TARGET(osx_installer DEPENDS ${PACKAGE_NAME})
+ENDFUNCTION(PRODUCT_BUILD)
+
+
+PKG_BUILD(  PKG_NAME        ArrayFireCPU
+            DEPENDS         package
+            TARGETS         cpu_package
+            INSTALL_LOCATION /usr/local/lib
+            IDENTIFIER      com.arrayfire.pkg.arrayfire.cpu.lib
+            PATH_TO_FILES   package/lib
+            FILTERS         opencl cuda)
+
+PKG_BUILD(  PKG_NAME        ArrayFireCUDA
+            DEPENDS         afcuda
+            TARGETS         cuda_package
+            INSTALL_LOCATION /usr/local/lib
+            IDENTIFIER      com.arrayfire.pkg.arrayfire.cuda.lib
+            PATH_TO_FILES   package/lib
+            FILTERS         cpu opencl)
+
+PKG_BUILD(  PKG_NAME        ArrayFireOPENCL
+            DEPENDS         afopencl
+            TARGETS         opencl_package
+            INSTALL_LOCATION /usr/local/lib
+            IDENTIFIER      com.arrayfire.pkg.arrayfire.opencl.lib
+            PATH_TO_FILES   package/lib
+            FILTERS         cpu cuda)
+
+PKG_BUILD(  PKG_NAME        ArrayFireHeaders
+            TARGETS         header_package
+            INSTALL_LOCATION /usr/local/include
+            IDENTIFIER      com.arrayfire.pkg.arrayfire.inc
+            PATH_TO_FILES   package/include)
+
+PKG_BUILD(  PKG_NAME        ArrayFireExtra
+            TARGETS         extra_package
+            INSTALL_LOCATION /usr/local/share
+            IDENTIFIER      com.arrayfire.pkg.arrayfire.extra
+            PATH_TO_FILES   package/share)
+
+PRODUCT_BUILD(DEPENDS ${cpu_package} ${cuda_package} ${opencl_package} ${header_package} ${extra_package})
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/arrayfire.git



More information about the debian-science-commits mailing list