| 1 |
PROJECT(qjson) |
| 2 |
|
| 3 |
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DQT_NO_CAST_FROM_ASCII -DQT_NO_CAST_TO_ASCII" ) |
| 4 |
|
| 5 |
# Stop cmake 2.6 from whining |
| 6 |
CMAKE_MINIMUM_REQUIRED(VERSION 2.6) |
| 7 |
CMAKE_POLICY(SET CMP0003 NEW) |
| 8 |
|
| 9 |
set(CMAKE_INSTALL_NAME_DIR ${LIB_INSTALL_DIR}) |
| 10 |
|
| 11 |
# compile in debug mode |
| 12 |
IF(NOT CMAKE_BUILD_TYPE) |
| 13 |
SET(CMAKE_BUILD_TYPE RelWithDebInfo CACHE STRING |
| 14 |
"Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel.") |
| 15 |
ENDIF(NOT CMAKE_BUILD_TYPE) |
| 16 |
|
| 17 |
IF("${CMAKE_BUILD_TYPE}" MATCHES "^Rel.*") |
| 18 |
ADD_DEFINITIONS("-DQT_NO_DEBUG_OUTPUT") |
| 19 |
ENDIF("${CMAKE_BUILD_TYPE}" MATCHES "^Rel.*") |
| 20 |
|
| 21 |
# Ability to disable verbose debug output |
| 22 |
IF(QJSON_VERBOSE_DEBUG_OUTPUT) |
| 23 |
ADD_DEFINITIONS("-DQJSON_VERBOSE_DEBUG_OUTPUT") |
| 24 |
endif(QJSON_VERBOSE_DEBUG_OUTPUT) |
| 25 |
|
| 26 |
OPTION(OSX_FRAMEWORK "Build a Mac OS X Framework") |
| 27 |
SET(FRAMEWORK_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/Library/Frameworks" |
| 28 |
CACHE PATH "Where to place qjson.framework if OSX_FRAMEWORK is selected") |
| 29 |
|
| 30 |
# Don't use absolute path in qjson-targets-*.cmake |
| 31 |
# (This will have no effect with CMake < 2.8) |
| 32 |
SET(QT_USE_IMPORTED_TARGETS TRUE) |
| 33 |
|
| 34 |
# Find Qt4 |
| 35 |
FIND_PACKAGE( Qt4 REQUIRED ) |
| 36 |
|
| 37 |
IF (NOT WIN32) |
| 38 |
SET( QT_DONT_USE_QTGUI TRUE ) |
| 39 |
ENDIF() |
| 40 |
|
| 41 |
# Include the cmake file needed to use qt4 |
| 42 |
INCLUDE( ${QT_USE_FILE} ) |
| 43 |
|
| 44 |
#add extra search paths for libraries and includes |
| 45 |
SET (LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" ) |
| 46 |
SET (LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" CACHE STRING "Directory where lib will install") |
| 47 |
SET (INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE PATH "The directory the headers are installed in") |
| 48 |
SET (CMAKECONFIG_INSTALL_DIR "${LIB_INSTALL_DIR}/cmake/${CMAKE_PROJECT_NAME}" CACHE PATH "Directory where to install QJSONConfig.cmake") |
| 49 |
|
| 50 |
set(QJSON_LIB_MAJOR_VERSION "0") |
| 51 |
set(QJSON_LIB_MINOR_VERSION "7") |
| 52 |
set(QJSON_LIB_PATCH_VERSION "1") |
| 53 |
|
| 54 |
set(QJSON_LIB_VERSION_STRING "${QJSON_LIB_MAJOR_VERSION}.${QJSON_LIB_MINOR_VERSION}.${QJSON_LIB_PATCH_VERSION}") |
| 55 |
|
| 56 |
set(LIBRARY_OUTPUT_PATH "${CMAKE_BINARY_DIR}/lib" ) |
| 57 |
|
| 58 |
# pkg-config |
| 59 |
IF (NOT WIN32) |
| 60 |
CONFIGURE_FILE (${CMAKE_CURRENT_SOURCE_DIR}/QJson.pc.in |
| 61 |
${CMAKE_CURRENT_BINARY_DIR}/QJson.pc |
| 62 |
@ONLY) |
| 63 |
INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/QJson.pc |
| 64 |
DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) |
| 65 |
ENDIF (NOT WIN32) |
| 66 |
|
| 67 |
# Subdirs |
| 68 |
ADD_SUBDIRECTORY(src) |
| 69 |
IF (KDE4_BUILD_TESTS OR QJSON_BUILD_TESTS) |
| 70 |
enable_testing() |
| 71 |
ADD_SUBDIRECTORY(tests) |
| 72 |
ENDIF (KDE4_BUILD_TESTS OR QJSON_BUILD_TESTS) |
| 73 |
|
| 74 |
CONFIGURE_FILE( |
| 75 |
"${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" |
| 76 |
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" |
| 77 |
IMMEDIATE @ONLY) |
| 78 |
|
| 79 |
INSTALL(EXPORT qjson-export DESTINATION ${CMAKECONFIG_INSTALL_DIR} FILE QJSONTargets.cmake) |
| 80 |
|
| 81 |
# figure out the relative path from the installed Config.cmake file to the install prefix (which may be at |
| 82 |
# runtime different from the chosen CMAKE_INSTALL_PREFIX if under Windows the package was installed anywhere) |
| 83 |
# This relative path will be configured into the QJSONConfig.cmake |
| 84 |
file(RELATIVE_PATH relInstallDir ${CMAKE_INSTALL_PREFIX}/${CMAKECONFIG_INSTALL_DIR} ${CMAKE_INSTALL_PREFIX} ) |
| 85 |
|
| 86 |
# cmake-modules |
| 87 |
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/QJSONConfig.cmake.in |
| 88 |
${CMAKE_CURRENT_BINARY_DIR}/QJSONConfig.cmake |
| 89 |
@ONLY) |
| 90 |
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/QJSONConfigVersion.cmake.in |
| 91 |
${CMAKE_CURRENT_BINARY_DIR}/QJSONConfigVersion.cmake |
| 92 |
@ONLY) |
| 93 |
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/QJSONConfig.cmake |
| 94 |
${CMAKE_CURRENT_BINARY_DIR}/QJSONConfigVersion.cmake |
| 95 |
DESTINATION "${CMAKECONFIG_INSTALL_DIR}") |
| 96 |
|
| 97 |
ADD_CUSTOM_TARGET(uninstall |
| 98 |
"${CMAKE_COMMAND}" -P "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake") |