author | Wuzzy <Wuzzy2@mail.ru> |
Sun, 05 May 2019 15:05:48 +0200 | |
changeset 14904 | ea2a1436cdd3 |
parent 13338 | 0b12b0d0d12c |
child 14944 | d6e21765912e |
child 15353 | 9a545985360b |
permissions | -rw-r--r-- |
9963 | 1 |
if(NOT APPLE) |
7817
6cc558a69b58
countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents:
7112
diff
changeset
|
2 |
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" |
6cc558a69b58
countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents:
7112
diff
changeset
|
3 |
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" |
6cc558a69b58
countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents:
7112
diff
changeset
|
4 |
IMMEDIATE @ONLY) |
2593 | 5 |
|
7817
6cc558a69b58
countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents:
7112
diff
changeset
|
6 |
add_custom_target(uninstall "${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") |
2593 | 7 |
endif() |
8 |
||
10976 | 9 |
if(APPLE AND NOT SKIPBUNDLE) |
13338
0b12b0d0d12c
Fix outdated Qt CMake dependency for OS X
Wuzzy <Wuzzy2@mail.ru>
parents:
12386
diff
changeset
|
10 |
find_package(Qt5 REQUIRED QUIET COMPONENTS Core Widgets Gui Network) |
11362 | 11 |
find_package(SDL2 REQUIRED) |
12386 | 12 |
find_package(SDL2_image 2 REQUIRED) |
13 |
find_package(SDL2_net 2 REQUIRED) |
|
14 |
find_package(SDL2_ttf 2 REQUIRED) |
|
15 |
find_package(SDL2_mixer 2 REQUIRED) |
|
11610 | 16 |
find_package(OggVorbis REQUIRED) |
10975
47c3a00f8037
Make sure that the png library name is always defined
koda
parents:
10974
diff
changeset
|
17 |
find_package(PNG REQUIRED) |
9679
dfaa39674e1e
some improvements for sdl2 building (not complete nor clean)
koda
parents:
9347
diff
changeset
|
18 |
|
7817
6cc558a69b58
countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents:
7112
diff
changeset
|
19 |
if(NOT NOAUTOUPDATE) |
8659 | 20 |
find_package(Sparkle) #needed for SPARKLE_FOUND variable |
7817
6cc558a69b58
countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents:
7112
diff
changeset
|
21 |
#needed because the 'if' clause in the script prints silly policy warnings |
9961 | 22 |
if(SPARKLE_FOUND) |
7817
6cc558a69b58
countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents:
7112
diff
changeset
|
23 |
set(SPARKLE_FOUND 1) |
6cc558a69b58
countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents:
7112
diff
changeset
|
24 |
else() |
6cc558a69b58
countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents:
7112
diff
changeset
|
25 |
set(SPARKLE_FOUND 0) |
6cc558a69b58
countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents:
7112
diff
changeset
|
26 |
endif() |
6cc558a69b58
countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents:
7112
diff
changeset
|
27 |
endif() |
6cc558a69b58
countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents:
7112
diff
changeset
|
28 |
|
6cc558a69b58
countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents:
7112
diff
changeset
|
29 |
#use the associated tool from the libraries we've selected |
6cc558a69b58
countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents:
7112
diff
changeset
|
30 |
string(REGEX REPLACE "(.*)/include.*" "\\1" qt_base_dir "${QT_INCLUDE_DIR}") |
4335 | 31 |
|
11609 | 32 |
#remove the ";-framework Cocoa" from the SDL2_LIBRARY variable |
33 |
string(REGEX REPLACE "(.*);-.*" "\\1" sdl_library_only "${SDL2_LIBRARY}") |
|
34 |
#remove the "libSDLmain.a" from the SDL2_LIBRARY variable |
|
10974
0f9fc5923be4
Fix libsdl bundling on OSX when library rather than framework is used
koda
parents:
10382
diff
changeset
|
35 |
string(REGEX REPLACE ".*;(.*)" "\\1" sdl_library_only "${sdl_library_only}") |
5169 | 36 |
|
10975
47c3a00f8037
Make sure that the png library name is always defined
koda
parents:
10974
diff
changeset
|
37 |
#get the neme of the library (harmelss if it is static) |
47c3a00f8037
Make sure that the png library name is always defined
koda
parents:
10974
diff
changeset
|
38 |
string(REGEX REPLACE ".*/(.*)$" "\\1" PNG_LIBNAME "${PNG_LIBRARY}") |
47c3a00f8037
Make sure that the png library name is always defined
koda
parents:
10974
diff
changeset
|
39 |
string(REGEX REPLACE ".*/(.*)$" "\\1" ZLIB_LIBNAME "${ZLIB_LIBRARY}") |
2219
07f5345ecae7
additional variable (BUNDLE) to make a standalone Mac application
koda
parents:
diff
changeset
|
40 |
|
8317
ec9f94ab2737
remove the CROSSAPPLE option until a better solution is found
koda
parents:
8316
diff
changeset
|
41 |
set(frameworks_dir ${CMAKE_INSTALL_PREFIX}/${target_library_install_dir}) |
8322 | 42 |
if(${BUILD_ENGINE_LIBRARY}) |
43 |
set(engine_full_path "${frameworks_dir}/${CMAKE_SHARED_LIBRARY_PREFIX}hwengine${CMAKE_SHARED_LIBRARY_SUFFIX}") |
|
44 |
else() |
|
45 |
set(engine_full_path "${CMAKE_INSTALL_PREFIX}/hwengine${CMAKE_EXECUTABLE_SUFFIX}") |
|
46 |
endif() |
|
8317
ec9f94ab2737
remove the CROSSAPPLE option until a better solution is found
koda
parents:
8316
diff
changeset
|
47 |
|
7817
6cc558a69b58
countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents:
7112
diff
changeset
|
48 |
#this tool is present in qt 4.5 but only if you compile from sources |
6cc558a69b58
countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents:
7112
diff
changeset
|
49 |
#from qt 4.6 is present also in the binary version |
6cc558a69b58
countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents:
7112
diff
changeset
|
50 |
find_program(macdeployqt_executable NAMES macdeployqt macdeployqt-mac PATHS ${qt_base_dir}/bin) |
6cc558a69b58
countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents:
7112
diff
changeset
|
51 |
if(NOT macdeployqt_executable) |
6cc558a69b58
countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents:
7112
diff
changeset
|
52 |
message(FATAL_ERROR "The utility macdeployqt is required to create the bundle (seached: ${qt_base_dir})") |
6cc558a69b58
countless small optimisation for cmake, output messages are now coherent (mostly) and the options get fully respected (eg. skipping library search if not activated)
koda
parents:
7112
diff
changeset
|
53 |
endif() |
2219
07f5345ecae7
additional variable (BUNDLE) to make a standalone Mac application
koda
parents:
diff
changeset
|
54 |
|
9345
bb9bf1efd0d2
use the modern install(SCRIPT ...) command instead of legacy POST_BUILD_SCRIPT
koda
parents:
9229
diff
changeset
|
55 |
#create the .app bundle |
bb9bf1efd0d2
use the modern install(SCRIPT ...) command instead of legacy POST_BUILD_SCRIPT
koda
parents:
9229
diff
changeset
|
56 |
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/CreateMacBundle.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/CreateMacBundle.cmake) |
bb9bf1efd0d2
use the modern install(SCRIPT ...) command instead of legacy POST_BUILD_SCRIPT
koda
parents:
9229
diff
changeset
|
57 |
install(SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/CreateMacBundle.cmake |
bb9bf1efd0d2
use the modern install(SCRIPT ...) command instead of legacy POST_BUILD_SCRIPT
koda
parents:
9229
diff
changeset
|
58 |
CODE "message(STATUS \"Your app bundle is ready\")") |
2219
07f5345ecae7
additional variable (BUNDLE) to make a standalone Mac application
koda
parents:
diff
changeset
|
59 |
|
9347 | 60 |
#create the .dmg for deployment |
61 |
#first make sure .app exists, then remove any old .dmg with same name, finally run the script |
|
11271 | 62 |
add_custom_target(dmg COMMAND make install |
9347 | 63 |
COMMAND rm -f ${CMAKE_BINARY_DIR}/Hedgewars-${HEDGEWARS_VERSION}.dmg |
64 |
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/create-dmg.sh |
|
65 |
--volname "Hedgewars ${HEDGEWARS_VERSION}" |
|
66 |
# --volicon icon.icns |
|
67 |
--window-size 600 470 |
|
68 |
--icon-size 96 |
|
69 |
--icon "Hedgewars" 190 190 |
|
70 |
--app-drop-link 410 190 |
|
71 |
--background "${CMAKE_CURRENT_SOURCE_DIR}/../misc/dmgBackground.png" |
|
72 |
${CMAKE_BINARY_DIR}/Hedgewars-${HEDGEWARS_VERSION}.dmg |
|
73 |
${CMAKE_BINARY_DIR}/Hedgewars.app |
|
74 |
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}) |
|
5169 | 75 |
endif() |
2547 | 76 |