tools/CMakeLists.txt
author koda
Tue, 09 Jul 2013 04:16:21 +0200
changeset 9343 67552b2e20ca
parent 9229 5d5c5cbe7681
child 9345 bb9bf1efd0d2
permissions -rw-r--r--
import create-dmg script from https://github.com/andreyvit/yoursway-create-dmg
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2593
dd995a9c8871 add an uninstall target (to be tested)
koda
parents: 2550
diff changeset
     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
dd995a9c8871 add an uninstall target (to be tested)
koda
parents: 2550
diff changeset
     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
dd995a9c8871 add an uninstall target (to be tested)
koda
parents: 2550
diff changeset
     7
endif()
dd995a9c8871 add an uninstall target (to be tested)
koda
parents: 2550
diff changeset
     8
5053
a767954cfa03 this should help people hacking the cmake files
koda
parents: 4775
diff changeset
     9
if (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
    10
    find_package(Qt4 REQUIRED QUIET)
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
    11
    find_package(SDL REQUIRED)
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
    12
    find_package(SDL_image REQUIRED)
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
    13
    find_package(SDL_net REQUIRED)
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
    14
    find_package(SDL_ttf REQUIRED)
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
    15
    find_package(SDL_mixer REQUIRED)
8660
6370e545fd5f rewritten FindOggVorbis.cmake
koda
parents: 8659
diff changeset
    16
    find_package(OggVorbis REQUIRED)
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
    17
    if(NOT NOAUTOUPDATE)
8659
e49056d3aba1 fail if sparkle not found consciously
koda
parents: 8322
diff changeset
    18
        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
    19
        #needed because the 'if' clause in the script prints silly policy warnings
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
    20
        if(${SPARKLE_FOUND})
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
            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
    22
        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
    23
            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
    24
        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
    25
    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
    26
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
    #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
    28
    string(REGEX REPLACE "(.*)/include.*" "\\1" qt_base_dir "${QT_INCLUDE_DIR}")
4335
c279aeb615df improve mac bundle creation
koda
parents: 2641
diff changeset
    29
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
    30
    #remove the ";-framework Cocoa" from the SDL_LIBRARY variable
8316
89232b2fa1d6 cmake rework, cleanup a lot of redundant sections, separate library and binary install location, unify osx and win handling of the data directory (tested on win, lin and mac)
koda
parents: 7817
diff changeset
    31
    string(REGEX REPLACE "(.*);-.*" "\\1" sdl_library_only "${SDL_LIBRARY}")
5169
e353ca78d28b some comments and simplifications for cmake files
koda
parents: 5096
diff changeset
    32
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
    33
    if(NOT NOPNG)
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
    34
        #get the neme of the library (harmelss if it is static)
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
    35
        string(REGEX REPLACE ".*/(.*)$" "\\1" PNG_LIBNAME "${PNG_LIBRARY}")
9050
e9d54cd577e7 perhaps unneeded, but...
koda
parents: 8660
diff changeset
    36
        string(REGEX REPLACE ".*/(.*)$" "\\1" ZLIB_LIBNAME "${ZLIB_LIBRARY}")
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
    37
    endif()
2219
07f5345ecae7 additional variable (BUNDLE) to make a standalone Mac application
koda
parents:
diff changeset
    38
8317
ec9f94ab2737 remove the CROSSAPPLE option until a better solution is found
koda
parents: 8316
diff changeset
    39
    set(frameworks_dir ${CMAKE_INSTALL_PREFIX}/${target_library_install_dir})
8322
50369fa5053b adjust rpath on osx too for libengine
koda
parents: 8317
diff changeset
    40
    if(${BUILD_ENGINE_LIBRARY})
50369fa5053b adjust rpath on osx too for libengine
koda
parents: 8317
diff changeset
    41
        set(engine_full_path "${frameworks_dir}/${CMAKE_SHARED_LIBRARY_PREFIX}hwengine${CMAKE_SHARED_LIBRARY_SUFFIX}")
50369fa5053b adjust rpath on osx too for libengine
koda
parents: 8317
diff changeset
    42
    else()
50369fa5053b adjust rpath on osx too for libengine
koda
parents: 8317
diff changeset
    43
        set(engine_full_path "${CMAKE_INSTALL_PREFIX}/hwengine${CMAKE_EXECUTABLE_SUFFIX}")
50369fa5053b adjust rpath on osx too for libengine
koda
parents: 8317
diff changeset
    44
    endif()
8317
ec9f94ab2737 remove the CROSSAPPLE option until a better solution is found
koda
parents: 8316
diff changeset
    45
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
    46
    #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
    47
    #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
    48
    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
    49
    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
    50
        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
    51
    endif()
2219
07f5345ecae7 additional variable (BUNDLE) to make a standalone Mac application
koda
parents:
diff changeset
    52
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
    53
    #dummy target, we're interested in the postscript file
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
    54
    add_custom_target(bundle)
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
    55
    set_target_properties(bundle PROPERTIES POST_INSTALL_SCRIPT ${CMAKE_CURRENT_BINARY_DIR}/CreateMacBundle.cmake)
2219
07f5345ecae7 additional variable (BUNDLE) to make a standalone Mac application
koda
parents:
diff changeset
    56
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
    57
    configure_file(${CMAKE_CURRENT_SOURCE_DIR}/CreateMacBundle.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/CreateMacBundle.cmake)
5169
e353ca78d28b some comments and simplifications for cmake files
koda
parents: 5096
diff changeset
    58
endif()
2547
koda
parents: 2546
diff changeset
    59