[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