cmake_modules/paths.cmake
branchhedgeroid
changeset 15515 7030706266df
parent 15318 7e3bd4030aa5
child 15486 58ce582ae87d
equal deleted inserted replaced
7861:bc7b6aa5d67a 15515:7030706266df
       
     1 #where to build libs and bins
       
     2 set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
       
     3 set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin)
       
     4 #these variables are for non-makefile generators
       
     5 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${EXECUTABLE_OUTPUT_PATH})
       
     6 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG ${EXECUTABLE_OUTPUT_PATH})
       
     7 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE ${EXECUTABLE_OUTPUT_PATH})
       
     8 set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH})
       
     9 set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${LIBRARY_OUTPUT_PATH})
       
    10 set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${LIBRARY_OUTPUT_PATH})
       
    11 set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${LIBRARY_OUTPUT_PATH})
       
    12 set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_RELEASE ${LIBRARY_OUTPUT_PATH})
       
    13 set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_DEBUG ${LIBRARY_OUTPUT_PATH})
       
    14 
       
    15 #resource paths
       
    16 if(UNIX AND NOT APPLE)
       
    17     set(target_binary_install_dir "bin" CACHE PATH "install dest for binaries")
       
    18     set(target_library_install_dir "lib${LIB_SUFFIX}" CACHE PATH "install dest for libs")
       
    19 
       
    20     string(SUBSTRING "${DATA_INSTALL_DIR}" 0 1 sharepath_start)
       
    21     if(${sharepath_start} MATCHES "/")
       
    22         set(HEDGEWARS_DATADIR "${DATA_INSTALL_DIR}/")
       
    23     else()
       
    24         set(HEDGEWARS_DATADIR "${CMAKE_INSTALL_PREFIX}/${DATA_INSTALL_DIR}/")
       
    25     endif()
       
    26     set(HEDGEWARS_FULL_DATADIR "${HEDGEWARS_DATADIR}")
       
    27 else()
       
    28     set(target_binary_install_dir "./")
       
    29 
       
    30     if(APPLE)
       
    31         set(target_library_install_dir "../Frameworks/")
       
    32         set(CMAKE_INSTALL_PREFIX "Hedgewars.app/Contents/MacOS/")
       
    33         set(HEDGEWARS_DATADIR "../Resources/")
       
    34         set(HEDGEWARS_FULL_DATADIR "/Applications/${CMAKE_INSTALL_PREFIX}/${HEDGEWARS_DATADIR}")
       
    35     elseif(WIN32)
       
    36         set(target_library_install_dir "./")
       
    37         set(HEDGEWARS_DATADIR "./")
       
    38         set(HEDGEWARS_FULL_DATADIR "${CMAKE_INSTALL_PREFIX}/")
       
    39         link_directories("${EXECUTABLE_OUTPUT_PATH}" "${CMAKE_SOURCE_DIR}/misc/winutils/bin")
       
    40     endif()
       
    41 endif()
       
    42 
       
    43 
       
    44 #RPATH SETTINGS
       
    45 #necessary for dynamic libraries on UNIX, ignored elsewhere
       
    46 
       
    47 #use, i.e. don't skip the full RPATH for the build tree
       
    48 set(CMAKE_SKIP_BUILD_RPATH FALSE)
       
    49 set(CMAKE_SKIP_INSTALL_RPATH FALSE)
       
    50 
       
    51 #it's safe to use our RPATH because it is relative
       
    52 set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE)
       
    53 
       
    54 #add the automatically determined parts of the RPATH
       
    55 #which point to directories outside the build tree to the install RPATH
       
    56 set(CMAKE_INSTALL_RPATH_USE_LINK_PATH FALSE)
       
    57 
       
    58 if(APPLE)
       
    59     #@rpath mangling
       
    60     set(CMAKE_INSTALL_RPATH "@executable_path/../Frameworks")
       
    61     #install_name_tool for libraries
       
    62     set(CMAKE_BUILD_WITH_INSTALL_NAME_DIR TRUE)
       
    63     set(CMAKE_INSTALL_NAME_DIR "@executable_path/../Frameworks")
       
    64 else(APPLE AND NOT (${CMAKE_INSTALL_PREFIX} MATCHES "/usr"))
       
    65     #paths where to find libraries (final slash not optional):
       
    66     # - the first is relative to the executable
       
    67     # - the second is the same directory of the executable (so it runs in bin/)
       
    68     # - the third one is the full path of the system dir
       
    69     #source http://www.cmake.org/pipermail/cmake/2008-January/019290.html
       
    70     #skip this if the install prefix is the standard one
       
    71     set(CMAKE_INSTALL_RPATH "$ORIGIN/../${target_library_install_dir}/:$ORIGIN/:${CMAKE_INSTALL_PREFIX}/${target_library_install_dir}/")
       
    72 endif(APPLE)