build: Revised macOS bundle generation script and info (issue #730)

This commit is contained in:
Eberhard Graether
2019-11-17 15:49:19 +01:00
parent 6641c17b93
commit 9b86f0e824
5 changed files with 40 additions and 57 deletions
+13 -12
View File
@@ -101,6 +101,7 @@ endif()
set(Boost_USE_MULTITHREAD ON)
set(Boost_USE_STATIC_LIBS ON)
set(Boost_USE_STATIC_RUNTIME OFF)
find_package(Boost 1.68 COMPONENTS system program_options filesystem date_time REQUIRED)
@@ -645,16 +646,14 @@ endif ()
add_dependencies(${APP_PROJECT_NAME} ${APP_INDEXER_NAME})
# MacOSX Bundle ----------------------------------------------------------------
# macOS Bundle ----------------------------------------------------------------
if (APPLE)
set(MACOSX_BUNDLE_NAME ${PROJECT_NAME})
set(MACOSX_BINARY_NAME ${APP_PROJECT_NAME})
set(MACOSX_INDEXER_BINARY_NAME ${APP_INDEXER_NAME})
set(MACOSX_DYNAMIC_LIBRARIES "")
string(REPLACE ";" " " MACOSX_DYNAMIC_LIBRARIES "${MACOSX_DYNAMIC_LIBRARIES}")
set(MACOS_BUNDLE_NAME ${PROJECT_NAME})
set(MACOS_BUNDLE_VERSION ${VERSION_STRING})
set(MACOS_BINARY_NAME ${APP_PROJECT_NAME})
set(MACOS_INDEXER_BINARY_NAME ${APP_INDEXER_NAME})
get_property(QT_CORE_PATH TARGET ${Qt5Core_LIBRARIES} PROPERTY LOCATION)
get_filename_component(QT_CORE_PATH ${QT_CORE_PATH} REALPATH)
@@ -674,19 +673,21 @@ if (APPLE)
get_property(QT_SVG_PATH TARGET ${Qt5Svg_LIBRARIES} PROPERTY LOCATION)
get_filename_component(QT_SVG_PATH ${QT_SVG_PATH} REALPATH)
list(APPEND MACOSX_QT_FRAMEWORKS ${QT_CORE_PATH} ${QT_GUI_PATH} ${QT_WIDGETS_PATH} ${QT_PRINT_PATH} ${QT_NETWORK_PATH} ${QT_SVG_PATH})
string(REPLACE ";" " " MACOSX_QT_FRAMEWORKS "${MACOSX_QT_FRAMEWORKS}")
list(APPEND MACOS_QT_FRAMEWORKS ${QT_CORE_PATH} ${QT_GUI_PATH} ${QT_WIDGETS_PATH} ${QT_PRINT_PATH} ${QT_NETWORK_PATH} ${QT_SVG_PATH})
string(REPLACE ";" " " MACOS_QT_FRAMEWORKS "${MACOS_QT_FRAMEWORKS}")
set(MACOSX_QT_DIR "$ENV{QT_DIR}")
set(MACOS_BOOST_DIR "${Boost_INCLUDE_DIR}")
STRING(REGEX REPLACE "/lib/cmake/clang" "" MACOS_CLANG_DIR ${Clang_DIR})
STRING(REGEX REPLACE "/lib/cmake/Qt5" "" MACOS_QT_DIR ${Qt5_DIR})
configure_file(
${PROJECT_SOURCE_DIR}/setup/MacOSX/bundle_install.sh.in
${PROJECT_SOURCE_DIR}/setup/macOS/bundle_install.sh.in
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/bundle_install.sh
@ONLY
)
configure_file(
${PROJECT_SOURCE_DIR}/setup/MacOSX/Info.plist.in
${PROJECT_SOURCE_DIR}/setup/macOS/bundle_info.plist.in
${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/bundle_info.plist
@ONLY
)
+11 -7
View File
@@ -41,10 +41,14 @@ string(REGEX REPLACE "^([0-9]+)\\..*" "\\1" VERSION_YEAR "${GIT_VERSION_NUMBER}"
string(REGEX REPLACE "^[0-9]+\\.([0-9]+).*" "\\1" VERSION_MINOR "${GIT_VERSION_NUMBER}")
string(REGEX REPLACE "^[0-9]+\\.[0-9]+-([0-9]+).*" "\\1" VERSION_COMMIT "${GIT_VERSION_NUMBER}")
message(STATUS "Git current branch: ${GIT_BRANCH}")
message(STATUS "Git version number: " ${GIT_VERSION_NUMBER} )
message(STATUS "Git commit hash: ${GIT_COMMIT_HASH}")
message(STATUS "Version year: ${VERSION_YEAR}")
message(STATUS "Version minor: ${VERSION_MINOR}")
message(STATUS "Version commit: ${VERSION_COMMIT}")
message(STATUS "Git commit time: ${GIT_COMMIT_TIME}")
set(VERSION_STRING "${VERSION_YEAR}.${VERSION_MINOR}.${VERSION_COMMIT}")
message(STATUS "Version: ${VERSION_STRING}")
# message(STATUS "Git current branch: ${GIT_BRANCH}")
# message(STATUS "Git version number: " ${GIT_VERSION_NUMBER} )
# message(STATUS "Git commit hash: ${GIT_COMMIT_HASH}")
# message(STATUS "Git commit time: ${GIT_COMMIT_TIME}")
# message(STATUS "Version year: ${VERSION_YEAR}")
# message(STATUS "Version minor: ${VERSION_MINOR}")
# message(STATUS "Version commit: ${VERSION_COMMIT}")
-12
View File
@@ -1,12 +0,0 @@
#ifndef SOURCETRAIL_VERSION_H
#define SOURCETRAIL_VERSION_H
#define GIT_BRANCH "@GIT_BRANCH@"
#define GIT_VERSION_NUMBER "@GIT_VERSION_NUMBER@"
#define GIT_COMMIT_HASH "@GIT_COMMIT_HASH@"
#define GIT_COMMIT_TIME "@GIT_COMMIT_TIME@"
#define VERSION_YEAR @VERSION_YEAR@
#define VERSION_MINOR @VERSION_MINOR@
#define VERSION_COMMIT @VERSION_COMMIT@
#endif // SOURCETRAIL_VERSION_H
@@ -8,26 +8,20 @@
<string>English</string>
<key>CFBundleExecutable</key>
<string>@MACOSX_BINARY_NAME@</string>
<key>CFBundleGetInfoString</key>
<string></string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>com.sourcetrail</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleLongVersionString</key>
<string></string>
<key>CFBundleName</key>
<string></string>
<string>Sourcetrail</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string></string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
<string>@GIT_VERSION_NUMBER@</string>
<string>@VERSION_STRING@</string>
<key>CFBundleShortVersionString</key>
<string>@VERSION_STRING@</string>
<key>CSResourcesFileMapped</key>
<true/>
<key>LSRequiresCarbon</key>
@@ -9,20 +9,18 @@ cd $MY_PATH
echo -e $INFO "Creating app bundle for macOS."
BUNDLE_NAME="@MACOSX_BUNDLE_NAME@"
APP_NAME="@MACOSX_BINARY_NAME@"
INDEXER_NAME="@MACOSX_INDEXER_BINARY_NAME@"
DYNLIB_PATHS=(@MACOSX_DYNAMIC_LIBRARIES@)
BUNDLE_NAME="@MACOS_BUNDLE_NAME@"
APP_NAME="@MACOS_BINARY_NAME@"
INDEXER_NAME="@MACOS_INDEXER_BINARY_NAME@"
VERSION_STRING=$(git describe --long)
VERSION_STRING="${VERSION_STRING//-/_}"
VERSION_STRING="@MACOS_BUNDLE_VERSION@"
VERSION_STRING="${VERSION_STRING//./_}"
VERSION_STRING="${VERSION_STRING%_*}"
PACKAGE_DIR=${BUNDLE_NAME}_${VERSION_STRING}
QT_DIR="@MACOSX_QT_DIR@"
QT_FRAMEWORK_PATHS=(@MACOSX_QT_FRAMEWORKS@)
BOOST_DIR="@MACOS_BOOST_DIR@"
CLANG_DIR="@MACOS_CLANG_DIR@"
QT_DIR="@MACOS_QT_DIR@"
QT_FRAMEWORK_PATHS=(@MACOS_QT_FRAMEWORKS@)
if [ ! -x "$APP_NAME" ]
then
@@ -89,15 +87,13 @@ $QT_DIR/bin/macdeployqt $BUNDLE_PATH
echo -e $INFO "edit qt.conf"
sed -i '' -e 's/PlugIns/Plugins/g' $RES_DIR/qt.conf
install_name_tool -delete_rpath "/Users/ebsi/Documents/clang-llvm/build_release/./lib" $APP_PATH
install_name_tool -delete_rpath "/Users/ebsi/Documents/clang-llvm/build_release/lib" $APP_PATH
install_name_tool -delete_rpath "/Users/ebsi/Documents/boost_1_68_0/stage/lib" $APP_PATH
install_name_tool -delete_rpath "$CLANG_DIR/./lib" $APP_PATH
install_name_tool -delete_rpath "$BOOST_DIR/stage/lib" $APP_PATH
install_name_tool -delete_rpath "@executable_path/../Frameworks" $APP_PATH
install_name_tool -add_rpath "@loader_path/../Frameworks" $APP_PATH
install_name_tool -delete_rpath "/Users/ebsi/Documents/clang-llvm/build_release/./lib" $INDEXER_PATH
install_name_tool -delete_rpath "/Users/ebsi/Documents/clang-llvm/build_release/lib" $INDEXER_PATH
install_name_tool -delete_rpath "/Users/ebsi/Documents/boost_1_68_0/stage/lib" $INDEXER_PATH
install_name_tool -delete_rpath "$CLANG_DIR/./lib" $INDEXER_PATH
install_name_tool -delete_rpath "$BOOST_DIR/stage/lib" $INDEXER_PATH
install_name_tool -delete_rpath "$QT_DIR/lib" $INDEXER_PATH
install_name_tool -add_rpath "@loader_path/../Frameworks" $INDEXER_PATH