[arrayfire] 68/79: Finalize osx Installer

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 ca00f5cd6a03858766bf2b3f362a8533ada846fa
Author: Umar Arshad <umar at arrayfire.com>
Date:   Fri Jun 12 14:23:05 2015 -0400

    Finalize osx Installer
---
 CMakeLists.txt                                     |  4 ++--
 CMakeModules/osx_install/InstallTool.cmake         |  9 ++++++++
 CMakeModules/{ => osx_install}/OSXInstaller.cmake  | 19 ++++++++++++-----
 CMakeModules/osx_install/cpu_scripts/postinstall   | 24 ++++++++++++++++++++++
 CMakeModules/osx_install/cuda_scripts/postinstall  | 23 +++++++++++++++++++++
 CMakeModules/{ => osx_install}/distribution.dist   |  2 +-
 .../osx_install/opencl_scripts/postinstall         | 23 +++++++++++++++++++++
 CMakeModules/{ => osx_install}/readme.html         |  0
 CMakeModules/{ => osx_install}/welcome.html        |  0
 src/backend/cpu/CMakeLists.txt                     |  2 ++
 src/backend/cuda/CMakeLists.txt                    |  2 ++
 src/backend/opencl/CMakeLists.txt                  |  2 ++
 12 files changed, 102 insertions(+), 8 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index bbb22b5..c6ec8ea 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -198,10 +198,10 @@ INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/Install/ArrayFireConfig.cmake
     COMPONENT cmake)
 
 IF(APPLE)
-    INCLUDE("${CMAKE_MODULE_PATH}/OSXInstaller.cmake")
+    INCLUDE("${CMAKE_MODULE_PATH}/osx_install/OSXInstaller.cmake")
 ENDIF(APPLE)
 
 ##
 # Packaging
 ##
-include(${CMAKE_CURRENT_SOURCE_DIR}/CPack.txt)
+include(${CMAKE_CURRENT_SOURCE_DIR}/CPack.cmake)
diff --git a/CMakeModules/osx_install/InstallTool.cmake b/CMakeModules/osx_install/InstallTool.cmake
new file mode 100755
index 0000000..535e5b0
--- /dev/null
+++ b/CMakeModules/osx_install/InstallTool.cmake
@@ -0,0 +1,9 @@
+
+EXECUTE_PROCESS( COMMAND otool -L ${CMAKE_CURRENT_BINARY_DIR}/package/lib/libforge.dylib
+                 COMMAND grep glfw
+                 COMMAND cut -d\  -f1
+                 COMMAND xargs -Jglfwlib install_name_tool -change glfwlib /usr/local/lib/libglfw3.dylib ${CMAKE_CURRENT_BINARY_DIR}/package/lib/libforge.dylib
+                 OUTPUT_FILE /tmp/af.out
+                 ERROR_FILE /tmp/af.err
+)
+
diff --git a/CMakeModules/OSXInstaller.cmake b/CMakeModules/osx_install/OSXInstaller.cmake
similarity index 85%
rename from CMakeModules/OSXInstaller.cmake
rename to CMakeModules/osx_install/OSXInstaller.cmake
index 3a62db3..14b7efc 100644
--- a/CMakeModules/OSXInstaller.cmake
+++ b/CMakeModules/osx_install/OSXInstaller.cmake
@@ -6,19 +6,26 @@ INCLUDE(${CMAKE_MODULE_PATH}/Version.cmake)
 
 SET(BIN2CPP_PROGRAM "bin2cpp")
 
+SET(OSX_INSTALL_DIR ${CMAKE_MODULE_PATH}/osx_install)
+
 FUNCTION(PKG_BUILD)
-    CMAKE_PARSE_ARGUMENTS(ARGS "" "INSTALL_LOCATION;IDENTIFIER;PATH_TO_FILES;PKG_NAME;TARGETS" "FILTERS" ${ARGN})
+    CMAKE_PARSE_ARGUMENTS(ARGS "" "INSTALL_LOCATION;IDENTIFIER;PATH_TO_FILES;PKG_NAME;TARGETS;SCRIPT_DIR" "FILTERS" ${ARGN})
 
     FOREACH(filter ${ARGS_FILTERS})
         LIST(APPEND  FILTER_LIST --filter ${filter})
     ENDFOREACH()
 
+    IF(ARGS_SCRIPT_DIR)
+        LIST(APPEND SCRPT_DIR --scripts ${ARGS_SCRIPT_DIR})
+    ENDIF(ARGS_SCRIPT_DIR)
+
     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}
+                                            ${SCRPT_DIR}
                                             ${FILTER_LIST}
                                             ${ARGS_PKG_NAME}.pkg
                         WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
@@ -31,13 +38,13 @@ ENDFUNCTION(PKG_BUILD)
 
 FUNCTION(PRODUCT_BUILD)
     CMAKE_PARSE_ARGUMENTS(ARGS "" "" "DEPENDS" ${ARGN})
-    SET(DISTRIBUTION_FILE       "${CMAKE_MODULE_PATH}/distribution.dist")
+    SET(DISTRIBUTION_FILE       "${OSX_INSTALL_DIR}/distribution.dist")
     SET(DISTRIBUTION_FILE_OUT   "${CMAKE_CURRENT_BINARY_DIR}/distribution.dist.out")
 
-    SET(WELCOME_FILE       "${CMAKE_MODULE_PATH}/welcome.html")
+    SET(WELCOME_FILE       "${OSX_INSTALL_DIR}/welcome.html")
     SET(WELCOME_FILE_OUT   "${CMAKE_CURRENT_BINARY_DIR}/welcome.html.out")
 
-    SET(README_FILE       "${CMAKE_MODULE_PATH}/readme.html")
+    SET(README_FILE       "${OSX_INSTALL_DIR}/readme.html")
     SET(README_FILE_OUT   "${CMAKE_CURRENT_BINARY_DIR}/readme.html.out")
 
     SET(AF_TITLE    "ArrayFire ${AF_VERSION}")
@@ -58,9 +65,10 @@ ENDFUNCTION(PRODUCT_BUILD)
 
 
 PKG_BUILD(  PKG_NAME        ArrayFireCPU
-            DEPENDS         package
+            DEPENDS         afcpu
             TARGETS         cpu_package
             INSTALL_LOCATION /usr/local/lib
+            SCRIPT_DIR      ${OSX_INSTALL_DIR}/cpu_scripts
             IDENTIFIER      com.arrayfire.pkg.arrayfire.cpu.lib
             PATH_TO_FILES   package/lib
             FILTERS         opencl cuda)
@@ -69,6 +77,7 @@ PKG_BUILD(  PKG_NAME        ArrayFireCUDA
             DEPENDS         afcuda
             TARGETS         cuda_package
             INSTALL_LOCATION /usr/local/lib
+            SCRIPT_DIR      ${OSX_INSTALL_DIR}/cuda_scripts
             IDENTIFIER      com.arrayfire.pkg.arrayfire.cuda.lib
             PATH_TO_FILES   package/lib
             FILTERS         cpu opencl)
diff --git a/CMakeModules/osx_install/cpu_scripts/postinstall b/CMakeModules/osx_install/cpu_scripts/postinstall
new file mode 100755
index 0000000..2afb4f6
--- /dev/null
+++ b/CMakeModules/osx_install/cpu_scripts/postinstall
@@ -0,0 +1,24 @@
+#!/bin/bash
+
+set -e
+set -o pipefail
+
+err_file=/tmp/AFInstaller.err
+brew=/usr/local/bin/brew
+
+if [ ! -f $brew ]; then
+    osascript -e 'tell app "Finder" to display dialog "Brew not installed. Please install brew at http://brew.sh"'
+    open http://brew.sh
+    echo "Brew not found" >> $err_file
+    exit 1
+fi
+
+user=$(ps aux | grep console | grep -v 'grep\|root' | cut -d' ' -f1 | head -n1)
+
+if [ -z $user ]; then
+    echo "User not found" >> $err_file
+    exit 1
+fi
+
+su $user -c "$brew tap homebrew/versions"
+su $user -c "$brew install fftw glfw3 fontconfig"
diff --git a/CMakeModules/osx_install/cuda_scripts/postinstall b/CMakeModules/osx_install/cuda_scripts/postinstall
new file mode 100755
index 0000000..53d3f9a
--- /dev/null
+++ b/CMakeModules/osx_install/cuda_scripts/postinstall
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+set -e
+set -o pipefail
+
+err_file=/tmp/AFInstallerCUDA.err
+brew=/usr/local/bin/brew
+
+if [ ! -f $brew ]; then
+    osascript -e 'tell app "Finder" to display dialog "Brew not installed. Please install brew at brew.sh"'
+    echo "Brew not found" >> $err_file
+    exit 1
+fi
+
+user=$(ps aux | grep console | grep -v 'grep\|root' | cut -d' ' -f1 | head -n1)
+
+if [ -z $user ]; then
+    echo "User not found" >> $err_file
+    exit 1
+fi
+
+su $user -c "$brew tap homebrew/versions"
+su $user -c "$brew install glfw3 fontconfig"
diff --git a/CMakeModules/distribution.dist b/CMakeModules/osx_install/distribution.dist
similarity index 91%
rename from CMakeModules/distribution.dist
rename to CMakeModules/osx_install/distribution.dist
index b62d54f..6fe9ba0 100644
--- a/CMakeModules/distribution.dist
+++ b/CMakeModules/osx_install/distribution.dist
@@ -33,7 +33,7 @@
     <choice title="ArrayFire Headers" description="ArrayFire Headers" id="com.arrayfire.arrayfire.inc" visible="true" enabled="true">
         <pkg-ref id="com.arrayfire.arrayfire.inc"/>
     </choice>
-    <choice title="Extas" description="Extas (Docs, Cmake scripts)" id="com.arrayfire.arrayfire.extra" visible="true" enabled="true">
+    <choice title="Extras" description="Extra files include documentation, examples, and cmake scripts to find and use ArrayFire with cmake," id="com.arrayfire.arrayfire.extra" visible="true" enabled="true">
         <pkg-ref id="com.arrayfire.arrayfire.extra"/>
     </choice>
 </installer-gui-script>
diff --git a/CMakeModules/osx_install/opencl_scripts/postinstall b/CMakeModules/osx_install/opencl_scripts/postinstall
new file mode 100755
index 0000000..8ce2577
--- /dev/null
+++ b/CMakeModules/osx_install/opencl_scripts/postinstall
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+set -e
+set -o pipefail
+
+err_file=/tmp/AFInstallerOpenCL.err
+brew=/usr/local/bin/brew
+
+if [ ! -f $brew ]; then
+    osascript -e 'tell app "Finder" to display dialog "Brew not installed. Please install brew at brew.sh"'
+    echo "Brew not found" >> $err_file
+    exit 1
+fi
+
+user=$(ps aux | grep console | grep -v 'grep\|root' | cut -d' ' -f1 | head -n1)
+
+if [ -z $user ]; then
+    echo "User not found" >> $err_file
+    exit 1
+fi
+
+su $user -c "$brew tap homebrew/versions"
+su $user -c "$brew install glfw3 fontconfig"
diff --git a/CMakeModules/readme.html b/CMakeModules/osx_install/readme.html
similarity index 100%
rename from CMakeModules/readme.html
rename to CMakeModules/osx_install/readme.html
diff --git a/CMakeModules/welcome.html b/CMakeModules/osx_install/welcome.html
similarity index 100%
rename from CMakeModules/welcome.html
rename to CMakeModules/osx_install/welcome.html
diff --git a/src/backend/cpu/CMakeLists.txt b/src/backend/cpu/CMakeLists.txt
index 056cba9..bd3990d 100644
--- a/src/backend/cpu/CMakeLists.txt
+++ b/src/backend/cpu/CMakeLists.txt
@@ -133,6 +133,8 @@ SET_TARGET_PROPERTIES(afcpu PROPERTIES
 INSTALL(TARGETS afcpu EXPORT CPU DESTINATION "${AF_INSTALL_LIB_DIR}"
         COMPONENT libraries)
 
+INSTALL(SCRIPT "${CMAKE_MODULE_PATH}/osx_install/InstallTool.cmake")
+
 export(TARGETS afcpu FILE ArrayFireCPU.cmake)
 INSTALL(EXPORT CPU DESTINATION "${AF_INSTALL_CMAKE_DIR}"
         COMPONENT cmake
diff --git a/src/backend/cuda/CMakeLists.txt b/src/backend/cuda/CMakeLists.txt
index e13512b..8849a36 100644
--- a/src/backend/cuda/CMakeLists.txt
+++ b/src/backend/cuda/CMakeLists.txt
@@ -284,6 +284,8 @@ SET_TARGET_PROPERTIES(afcuda PROPERTIES
 INSTALL(TARGETS afcuda EXPORT CUDA DESTINATION "${AF_INSTALL_LIB_DIR}"
         COMPONENT libraries)
 
+INSTALL(SCRIPT "${CMAKE_MODULE_PATH}/osx_install/InstallTool.cmake")
+
 export(TARGETS afcuda FILE ArrayFireCUDA.cmake)
 INSTALL(EXPORT CUDA DESTINATION "${AF_INSTALL_CMAKE_DIR}"
     COMPONENT cmake
diff --git a/src/backend/opencl/CMakeLists.txt b/src/backend/opencl/CMakeLists.txt
index 662805f..882d74a 100644
--- a/src/backend/opencl/CMakeLists.txt
+++ b/src/backend/opencl/CMakeLists.txt
@@ -213,6 +213,8 @@ ENDIF()
 INSTALL(TARGETS afopencl EXPORT OpenCL DESTINATION "${AF_INSTALL_LIB_DIR}"
         COMPONENT libraries)
 
+INSTALL(SCRIPT "${CMAKE_MODULE_PATH}/osx_install/InstallTool.cmake")
+
 export(TARGETS afopencl FILE ArrayFireOpenCL.cmake)
 INSTALL(EXPORT OpenCL DESTINATION "${AF_INSTALL_CMAKE_DIR}"
     COMPONENT cmake

-- 
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