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")