[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