| | 12 | # VALID_BUILDER_VERSION: used for replacing CMAKE_VERSION (available in v2.6.3 RC9) and VERSION_GREATER/VERSION_LESS (available in 2.6.2 RC4). |
| | 13 | # This can be replaced by "IF(${CMAKE_VERSION} VERSION_LESS "x.y.z")" from 2.6.4. |
| | 14 | SET(VALID_BUILDER_VERSION OFF) |
| | 15 | MACRO(BUILDER_VERSION_GREATER MAJOR_VER MINOR_VER PATCH_VER) |
| | 16 | SET(VALID_BUILDER_VERSION OFF) |
| | 17 | IF(CMAKE_MAJOR_VERSION GREATER ${MAJOR_VER}) |
| | 18 | SET(VALID_BUILDER_VERSION ON) |
| | 19 | ELSEIF(CMAKE_MAJOR_VERSION EQUAL ${MAJOR_VER}) |
| | 20 | IF(CMAKE_MINOR_VERSION GREATER ${MINOR_VER}) |
| | 21 | SET(VALID_BUILDER_VERSION ON) |
| | 22 | ELSEIF(CMAKE_MINOR_VERSION EQUAL ${MINOR_VER}) |
| | 23 | IF(CMAKE_PATCH_VERSION GREATER ${PATCH_VER}) |
| | 24 | SET(VALID_BUILDER_VERSION ON) |
| | 25 | ENDIF(CMAKE_PATCH_VERSION GREATER ${PATCH_VER}) |
| | 26 | ENDIF() |
| | 27 | ENDIF() |
| | 28 | ENDMACRO(BUILDER_VERSION_GREATER MAJOR_VER MINOR_VER PATCH_VER) |
| | 29 | |
| | 30 | # CMAKE24: if CMake version is <2.6.0. |
| | 31 | SET(CMAKE24 OFF) |
| | 32 | IF(${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} LESS 5) |
| | 33 | SET(CMAKE24 ON) |
| | 34 | ENDIF(${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} LESS 5) |
| | 35 | |
| | 36 | # CMAKE_VERSION_TEST: Define whether "IF(${CMAKE_VERSION} VERSION_LESS "x.y.z")" can be used or not. |
| | 37 | BUILDER_VERSION_GREATER(2 6 3) |
| | 38 | SET(CMAKE_VERSION_TEST ${VALID_BUILDER_VERSION}) # >= 2.6.4 |
| | 39 | |
| | 40 | SET(VALID_BUILDER_VERSION OFF) |
| | 41 | |
| | 162 | # Sets the output directory property for CMake >= 2.6.0, giving an output path RELATIVE to default one |
| | 163 | MACRO(SET_OUTPUT_DIR_PROPERTY_260 TARGET_TARGETNAME RELATIVE_OUTDIR) |
| | 164 | BUILDER_VERSION_GREATER(2 8 0) |
| | 165 | IF(NOT VALID_BUILDER_VERSION) |
| | 166 | # If CMake <= 2.8.0 (Testing CMAKE_VERSION is possible in >= 2.6.4) |
| | 167 | IF(MSVC_IDE) |
| | 168 | # Using the "prefix" hack |
| | 169 | SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES PREFIX "../${RELATIVE_OUTDIR}/") |
| | 170 | ELSE(MSVC_IDE) |
| | 171 | SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES PREFIX "${RELATIVE_OUTDIR}/") |
| | 172 | ENDIF(MSVC_IDE) |
| | 173 | ELSE(NOT VALID_BUILDER_VERSION) |
| | 174 | # Using the output directory properties |
| | 175 | |
| | 176 | # Global properties (All generators but VS & Xcode) |
| | 177 | FILE(TO_CMAKE_PATH TMPVAR "CMAKE_ARCHIVE_OUTPUT_DIRECTORY/${RELATIVE_OUTDIR}") |
| | 178 | SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${TMPVAR}") |
| | 179 | FILE(TO_CMAKE_PATH TMPVAR "CMAKE_RUNTIME_OUTPUT_DIRECTORY/${RELATIVE_OUTDIR}") |
| | 180 | SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${TMPVAR}") |
| | 181 | FILE(TO_CMAKE_PATH TMPVAR "CMAKE_LIBRARY_OUTPUT_DIRECTORY/${RELATIVE_OUTDIR}") |
| | 182 | SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES LIBRARY_OUTPUT_DIRECTORY "${TMPVAR}") |
| | 183 | |
| | 184 | # Per-configuration property (VS, Xcode) |
| | 185 | FOREACH(CONF ${CMAKE_CONFIGURATION_TYPES}) # For each configuration (Debug, Release, MinSizeRel... and/or anything the user chooses) |
| | 186 | STRING(TOUPPER "${CONF}" CONF) # Go uppercase (DEBUG, RELEASE...) |
| | 187 | |
| | 188 | # We use "FILE(TO_CMAKE_PATH", to create nice looking paths |
| | 189 | FILE(TO_CMAKE_PATH "${CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CONF}}/${RELATIVE_OUTDIR}" TMPVAR) |
| | 190 | SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES "ARCHIVE_OUTPUT_DIRECTORY_${CONF}" "${TMPVAR}") |
| | 191 | FILE(TO_CMAKE_PATH "${CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CONF}}/${RELATIVE_OUTDIR}" TMPVAR) |
| | 192 | SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES "RUNTIME_OUTPUT_DIRECTORY_${CONF}" "${TMPVAR}") |
| | 193 | FILE(TO_CMAKE_PATH "${CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CONF}}/${RELATIVE_OUTDIR}" TMPVAR) |
| | 194 | SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES "LIBRARY_OUTPUT_DIRECTORY_${CONF}" "${TMPVAR}") |
| | 195 | ENDFOREACH(CONF ${CMAKE_CONFIGURATION_TYPES}) |
| | 196 | ENDIF(NOT VALID_BUILDER_VERSION) |
| | 197 | ENDMACRO(SET_OUTPUT_DIR_PROPERTY_260 TARGET_TARGETNAME RELATIVE_OUTDIR) |
| | 198 | |
| | 199 | |
| 369 | | SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES PREFIX "../bin/${LIB_PREFIX}${LIB_SOVERSION}-") |
| 370 | | IF (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) |
| | 432 | IF (NOT CMAKE24) |
| | 433 | BUILDER_VERSION_GREATER(2 8 0) |
| | 434 | IF(NOT VALID_BUILDER_VERSION) |
| | 435 | # If CMake < 2.8.1 |
| | 436 | SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES PREFIX "../bin/${LIB_PREFIX}${LIB_SOVERSION}-" IMPORT_PREFIX "../") |
| | 437 | ELSE(NOT VALID_BUILDER_VERSION) |
| | 438 | SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES PREFIX "${LIB_PREFIX}${LIB_SOVERSION}-") |
| | 439 | ENDIF(NOT VALID_BUILDER_VERSION) |
| | 440 | ELSE (NOT CMAKE24) |
| | 441 | SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES PREFIX "../bin/${LIB_PREFIX}${LIB_SOVERSION}-" IMPORT_PREFIX "../") |
| 380 | | ENDIF (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4) |
| 381 | | ELSE(NOT MSVC_IDE) |
| 382 | | IF(MSVC_VERSION LESS 1600) |
| | 451 | ENDIF (NOT CMAKE24) |
| | 452 | ELSE(NOT MSVC_IDE) |
| | 453 | IF (NOT CMAKE24) |
| | 454 | BUILDER_VERSION_GREATER(2 8 0) |
| | 455 | IF(NOT VALID_BUILDER_VERSION) |
| | 456 | # If CMake < 2.8.1 |
| | 457 | SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES PREFIX "../../bin/${LIB_PREFIX}${LIB_SOVERSION}-" IMPORT_PREFIX "../") |
| | 458 | ELSE(NOT VALID_BUILDER_VERSION) |
| | 459 | SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES PREFIX "${LIB_PREFIX}${LIB_SOVERSION}-") |
| | 460 | ENDIF(NOT VALID_BUILDER_VERSION) |
| | 461 | ELSE (NOT CMAKE24) |