Merge pull request #157 from JoakimSoderberg/cmake_config_new
Cmake config
This commit is contained in:
commit
cffc5df600
231
CMakeLists.txt
231
CMakeLists.txt
@ -51,24 +51,24 @@ cmake_minimum_required (VERSION 2.8)
|
|||||||
project (jansson C)
|
project (jansson C)
|
||||||
|
|
||||||
# Options
|
# Options
|
||||||
OPTION (BUILD_SHARED_LIBS "Build shared libraries." OFF)
|
option(JANSSON_BUILD_SHARED_LIBS "Build shared libraries." OFF)
|
||||||
|
|
||||||
if (MSVC)
|
if (MSVC)
|
||||||
# This option must match the settings used in your program, in particular if you
|
# This option must match the settings used in your program, in particular if you
|
||||||
# are linking statically
|
# are linking statically
|
||||||
OPTION( STATIC_CRT "Link the static CRT libraries" OFF )
|
option(JANSSON_STATIC_CRT "Link the static CRT libraries" OFF )
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
# Set some nicer output dirs.
|
# Set some nicer output dirs.
|
||||||
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
|
||||||
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
|
||||||
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
|
||||||
|
|
||||||
# Give the debug version a different postfix for windows,
|
# Give the debug version a different postfix for windows,
|
||||||
# so both the debug and release version can be built in the
|
# so both the debug and release version can be built in the
|
||||||
# same build-tree on Windows (MSVC).
|
# same build-tree on Windows (MSVC).
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
SET (CMAKE_DEBUG_POSTFIX "_d")
|
set(CMAKE_DEBUG_POSTFIX "_d")
|
||||||
else (WIN32)
|
else (WIN32)
|
||||||
endif (WIN32)
|
endif (WIN32)
|
||||||
|
|
||||||
@ -79,8 +79,8 @@ endif (WIN32)
|
|||||||
set(JANSSON_DISPLAY_VERSION "2.5")
|
set(JANSSON_DISPLAY_VERSION "2.5")
|
||||||
|
|
||||||
# This is what is required to match the same numbers as automake's
|
# This is what is required to match the same numbers as automake's
|
||||||
set (JANSSON_VERSION "4.5.0")
|
set(JANSSON_VERSION "4.5.0")
|
||||||
set (JANSSON_SOVERSION 4)
|
set(JANSSON_SOVERSION 4)
|
||||||
|
|
||||||
# for CheckFunctionKeywords
|
# for CheckFunctionKeywords
|
||||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
||||||
@ -204,11 +204,11 @@ if (HAVE_LOCALECONV AND HAVE_LOCALE_H)
|
|||||||
set (JSON_HAVE_LOCALECONV 1)
|
set (JSON_HAVE_LOCALECONV 1)
|
||||||
else ()
|
else ()
|
||||||
set (JSON_HAVE_LOCALECONV 0)
|
set (JSON_HAVE_LOCALECONV 0)
|
||||||
endif ()
|
endif()
|
||||||
|
|
||||||
|
|
||||||
# check if we have setlocale
|
# check if we have setlocale
|
||||||
check_function_exists (setlocale HAVE_SETLOCALE)
|
check_function_exists(setlocale HAVE_SETLOCALE)
|
||||||
|
|
||||||
|
|
||||||
# Check what the inline keyword is.
|
# Check what the inline keyword is.
|
||||||
@ -218,39 +218,26 @@ check_function_keywords("__inline")
|
|||||||
check_function_keywords("__inline__")
|
check_function_keywords("__inline__")
|
||||||
|
|
||||||
if (HAVE_INLINE)
|
if (HAVE_INLINE)
|
||||||
set (JSON_INLINE inline)
|
set(JSON_INLINE inline)
|
||||||
elseif (HAVE___INLINE)
|
elseif (HAVE___INLINE)
|
||||||
set (JSON_INLINE __inline)
|
set(JSON_INLINE __inline)
|
||||||
elseif (HAVE___INLINE__)
|
elseif (HAVE___INLINE__)
|
||||||
set (JSON_INLINE __inline__)
|
set(JSON_INLINE __inline__)
|
||||||
else (HAVE_INLINE)
|
else()
|
||||||
# no inline on this platform
|
# no inline on this platform
|
||||||
set (JSON_INLINE)
|
set (JSON_INLINE)
|
||||||
endif (HAVE_INLINE)
|
endif()
|
||||||
|
|
||||||
# Find our snprintf
|
# Find our snprintf
|
||||||
check_function_exists (snprintf HAVE_SNPRINTF)
|
check_function_exists (snprintf HAVE_SNPRINTF)
|
||||||
check_function_exists (_snprintf HAVE__SNPRINTF)
|
check_function_exists (_snprintf HAVE__SNPRINTF)
|
||||||
|
|
||||||
if (HAVE_SNPRINTF)
|
if (HAVE_SNPRINTF)
|
||||||
set (JSON_SNPRINTF snprintf)
|
set(JSON_SNPRINTF snprintf)
|
||||||
elseif (HAVE__SNPRINTF)
|
elseif (HAVE__SNPRINTF)
|
||||||
set (JSON_SNPRINTF _snprintf)
|
set(JSON_SNPRINTF _snprintf)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
# Create pkg-conf file.
|
|
||||||
# (We use the same files as ./configure does, so we
|
|
||||||
# have to defined the same variables used there).
|
|
||||||
if(NOT DEFINED CMAKE_INSTALL_LIBDIR)
|
|
||||||
set(CMAKE_INSTALL_LIBDIR lib)
|
|
||||||
endif(NOT DEFINED CMAKE_INSTALL_LIBDIR)
|
|
||||||
set(prefix ${CMAKE_INSTALL_PREFIX})
|
|
||||||
set(exec_prefix ${CMAKE_INSTALL_PREFIX})
|
|
||||||
set(libdir ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR})
|
|
||||||
set(VERSION ${JANSSON_DISPLAY_VERSION})
|
|
||||||
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/jansson.pc.in
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/jansson.pc @ONLY)
|
|
||||||
|
|
||||||
# configure the public config file
|
# configure the public config file
|
||||||
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/cmake/jansson_config.h.cmake
|
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/cmake/jansson_config.h.cmake
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/include/jansson_config.h)
|
${CMAKE_CURRENT_BINARY_DIR}/include/jansson_config.h)
|
||||||
@ -259,59 +246,58 @@ configure_file (${CMAKE_CURRENT_SOURCE_DIR}/cmake/jansson_config.h.cmake
|
|||||||
file (COPY ${CMAKE_CURRENT_SOURCE_DIR}/src/jansson.h
|
file (COPY ${CMAKE_CURRENT_SOURCE_DIR}/src/jansson.h
|
||||||
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/include/)
|
DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/include/)
|
||||||
|
|
||||||
|
add_definitions(-DJANSSON_USING_CMAKE)
|
||||||
|
|
||||||
# configure the private config file
|
# configure the private config file
|
||||||
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/cmake/config.h.cmake
|
configure_file (${CMAKE_CURRENT_SOURCE_DIR}/cmake/jansson_private_config.h.cmake
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/private_include/config.h)
|
${CMAKE_CURRENT_BINARY_DIR}/private_include/jansson_private_config.h)
|
||||||
|
|
||||||
# and tell the source code to include it
|
|
||||||
add_definitions (-DHAVE_CONFIG_H)
|
|
||||||
|
|
||||||
include_directories (${CMAKE_CURRENT_BINARY_DIR}/include)
|
include_directories (${CMAKE_CURRENT_BINARY_DIR}/include)
|
||||||
include_directories (${CMAKE_CURRENT_BINARY_DIR}/private_include)
|
include_directories (${CMAKE_CURRENT_BINARY_DIR}/private_include)
|
||||||
|
|
||||||
# Add the lib sources.
|
# Add the lib sources.
|
||||||
file (GLOB C_FILES src/*.c)
|
file(GLOB JANSSON_SRC src/*.c)
|
||||||
|
|
||||||
if (BUILD_SHARED_LIBS)
|
set(JANSSON_HDR_PRIVATE
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/src/hashtable.h
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/src/jansson_private.h
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/src/strbuffer.h
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/src/utf.h)
|
||||||
|
|
||||||
add_library (jansson SHARED ${C_FILES} src/jansson.def)
|
set(JANSSON_HDR_PUBLIC
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/include/jansson_config.h
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/src/jansson.h)
|
||||||
|
|
||||||
set_target_properties (jansson PROPERTIES
|
source_group("Library Sources" FILES ${JANSSON_SRC})
|
||||||
|
source_group("Library Private Headers" FILES ${JANSSON_HDR_PRIVATE})
|
||||||
|
source_group("Library Public Headers" FILES ${JANSSON_HDR_PUBLIC})
|
||||||
|
|
||||||
|
if(JANSSON_BUILD_SHARED_LIBS)
|
||||||
|
add_library(jansson SHARED
|
||||||
|
${JANSSON_SRC}
|
||||||
|
${JANSSON_HDR_PRIVATE}
|
||||||
|
${JANSSON_HDR_PUBLIC}
|
||||||
|
src/jansson.def)
|
||||||
|
|
||||||
|
set_target_properties(jansson PROPERTIES
|
||||||
VERSION ${JANSSON_VERSION}
|
VERSION ${JANSSON_VERSION}
|
||||||
SOVERSION ${JANSSON_SOVERSION})
|
SOVERSION ${JANSSON_SOVERSION})
|
||||||
|
else()
|
||||||
|
add_library(jansson
|
||||||
|
${JANSSON_SRC}
|
||||||
|
${JANSSON_HDR_PRIVATE}
|
||||||
|
${JANSSON_HDR_PUBLIC})
|
||||||
|
endif()
|
||||||
|
|
||||||
else ()
|
|
||||||
|
|
||||||
add_library (jansson ${C_FILES})
|
|
||||||
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
# LIBRARY for linux
|
|
||||||
# RUNTIME for windows (when building shared)
|
|
||||||
install (TARGETS jansson
|
|
||||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
||||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
|
||||||
RUNTIME DESTINATION bin
|
|
||||||
)
|
|
||||||
|
|
||||||
install (FILES
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/include/jansson_config.h
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/src/jansson.h
|
|
||||||
DESTINATION include)
|
|
||||||
|
|
||||||
install (FILES
|
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/jansson.pc
|
|
||||||
DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)
|
|
||||||
|
|
||||||
# For building Documentation (uses Sphinx)
|
# For building Documentation (uses Sphinx)
|
||||||
OPTION (BUILD_DOCS "Build documentation (uses python-sphinx)." ON)
|
option(JANSSON_BUILD_DOCS "Build documentation (uses python-sphinx)." ON)
|
||||||
if (BUILD_DOCS)
|
if (JANSSON_BUILD_DOCS)
|
||||||
find_package(Sphinx)
|
find_package(Sphinx)
|
||||||
|
|
||||||
if (NOT SPHINX_FOUND)
|
if (NOT SPHINX_FOUND)
|
||||||
message(WARNING "Sphinx not found. Cannot generate documentation!
|
message(WARNING "Sphinx not found. Cannot generate documentation!
|
||||||
Set -DBUILD_DOCS=0 to get rid of this message.")
|
Set -DJANSSON_BUILD_DOCS=OFF to get rid of this message.")
|
||||||
else()
|
else()
|
||||||
if (Sphinx_VERSION_STRING VERSION_LESS 1.0)
|
if (Sphinx_VERSION_STRING VERSION_LESS 1.0)
|
||||||
message(WARNING "Your Sphinx version is too old!
|
message(WARNING "Your Sphinx version is too old!
|
||||||
@ -346,9 +332,9 @@ if (BUILD_DOCS)
|
|||||||
# Add documentation targets.
|
# Add documentation targets.
|
||||||
set(DOC_TARGETS html)
|
set(DOC_TARGETS html)
|
||||||
|
|
||||||
OPTION(BUILD_MAN "Create a target for building man pages." ON)
|
option(JANSSON_BUILD_MAN "Create a target for building man pages." ON)
|
||||||
|
|
||||||
if (BUILD_MAN)
|
if (JANSSON_BUILD_MAN)
|
||||||
if (Sphinx_VERSION_STRING VERSION_LESS 1.0)
|
if (Sphinx_VERSION_STRING VERSION_LESS 1.0)
|
||||||
message(WARNING "Sphinx version 1.0 > is required to build man pages. You have v${Sphinx_VERSION_STRING}.")
|
message(WARNING "Sphinx version 1.0 > is required to build man pages. You have v${Sphinx_VERSION_STRING}.")
|
||||||
else()
|
else()
|
||||||
@ -356,9 +342,9 @@ if (BUILD_DOCS)
|
|||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
OPTION(BUILD_LATEX "Create a target for building latex docs (to create PDF)." OFF)
|
option(JANSSON_BUILD_LATEX "Create a target for building latex docs (to create PDF)." OFF)
|
||||||
|
|
||||||
if (BUILD_LATEX)
|
if (JANSSON_BUILD_LATEX)
|
||||||
find_package(LATEX)
|
find_package(LATEX)
|
||||||
|
|
||||||
if (NOT LATEX_COMPILER)
|
if (NOT LATEX_COMPILER)
|
||||||
@ -391,14 +377,14 @@ if (BUILD_DOCS)
|
|||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
|
||||||
OPTION (WITHOUT_TESTS "Don't build tests ('make test' to execute tests)" OFF)
|
option(JANSSON_WITHOUT_TESTS "Don't build tests ('make test' to execute tests)" OFF)
|
||||||
|
|
||||||
if (NOT WITHOUT_TESTS)
|
if (NOT JANSSON_WITHOUT_TESTS)
|
||||||
OPTION (TEST_WITH_VALGRIND "Enable valgrind tests." OFF)
|
option(JANSSON_TEST_WITH_VALGRIND "Enable valgrind tests." OFF)
|
||||||
|
|
||||||
ENABLE_TESTING()
|
ENABLE_TESTING()
|
||||||
|
|
||||||
if (TEST_WITH_VALGRIND)
|
if (JANSSON_TEST_WITH_VALGRIND)
|
||||||
# TODO: Add FindValgrind.cmake instead of having a hardcoded path.
|
# TODO: Add FindValgrind.cmake instead of having a hardcoded path.
|
||||||
|
|
||||||
# enable valgrind
|
# enable valgrind
|
||||||
@ -479,3 +465,104 @@ if (NOT WITHOUT_TESTS)
|
|||||||
DEPENDS json_process ${api_tests})
|
DEPENDS json_process ${api_tests})
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
#
|
||||||
|
# Installation preparation.
|
||||||
|
#
|
||||||
|
|
||||||
|
# Allow the user to override installation directories.
|
||||||
|
set(JANSSON_INSTALL_LIB_DIR lib CACHE PATH "Installation directory for libraries")
|
||||||
|
set(JANSSON_INSTALL_BIN_DIR bin CACHE PATH "Installation directory for executables")
|
||||||
|
set(JANSSON_INSTALL_INCLUDE_DIR include CACHE PATH "Installation directory for header files")
|
||||||
|
|
||||||
|
if(WIN32 AND NOT CYGWIN)
|
||||||
|
set(DEF_INSTALL_CMAKE_DIR cmake)
|
||||||
|
else()
|
||||||
|
set(DEF_INSTALL_CMAKE_DIR lib/cmake/jansson)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(JANSSON_INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH "Installation directory for CMake files")
|
||||||
|
|
||||||
|
# Make sure the paths are absolute.
|
||||||
|
foreach(p LIB BIN INCLUDE CMAKE)
|
||||||
|
set(var JANSSON_INSTALL_${p}_DIR)
|
||||||
|
if(NOT IS_ABSOLUTE "${${var}}")
|
||||||
|
set(${var} "${CMAKE_INSTALL_PREFIX}/${${var}}")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
# Export targets (This is used for other CMake projects to easily find the libraries and include files).
|
||||||
|
export(TARGETS jansson
|
||||||
|
FILE "${PROJECT_BINARY_DIR}/JanssonTargets.cmake")
|
||||||
|
export(PACKAGE jansson)
|
||||||
|
|
||||||
|
# Generate the config file for the build-tree.
|
||||||
|
set(JANSSON__INCLUDE_DIRS
|
||||||
|
"${PROJECT_SOURCE_DIR}/include"
|
||||||
|
"${PROJECT_BINARY_DIR}/include")
|
||||||
|
set(JANSSON_INCLUDE_DIRS ${JANSSON__INCLUDE_DIRS} CACHE PATH "Jansson include directories")
|
||||||
|
configure_file(${PROJECT_SOURCE_DIR}/cmake/JanssonConfig.cmake.in
|
||||||
|
${PROJECT_BINARY_DIR}/JanssonConfig.cmake
|
||||||
|
@ONLY)
|
||||||
|
|
||||||
|
# Generate the config file for the installation tree.
|
||||||
|
file(RELATIVE_PATH
|
||||||
|
REL_INCLUDE_DIR
|
||||||
|
"${JANSSON_INSTALL_CMAKE_DIR}"
|
||||||
|
"${JANSSON_INSTALL_INCLUDE_DIR}") # Calculate the relative directory from the Cmake dir.
|
||||||
|
|
||||||
|
# Note the EVENT_CMAKE_DIR is defined in JanssonConfig.cmake.in,
|
||||||
|
# we escape it here so it's evaluated when it is included instead
|
||||||
|
# so that the include dirs are given relative to where the
|
||||||
|
# config file is located.
|
||||||
|
set(JANSSON__INCLUDE_DIRS
|
||||||
|
"\${JANSSON_CMAKE_DIR}/${REL_INCLUDE_DIR}")
|
||||||
|
configure_file(${PROJECT_SOURCE_DIR}/cmake/JanssonConfig.cmake.in
|
||||||
|
${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/JanssonConfig.cmake
|
||||||
|
@ONLY)
|
||||||
|
|
||||||
|
# Generate version info for both build-tree and install-tree.
|
||||||
|
configure_file(${PROJECT_SOURCE_DIR}/cmake/JanssonConfigVersion.cmake.in
|
||||||
|
${PROJECT_BINARY_DIR}/JanssonConfigVersion.cmake
|
||||||
|
@ONLY)
|
||||||
|
|
||||||
|
# Define the public headers.
|
||||||
|
set_target_properties(jansson PROPERTIES PUBLIC_HEADER "${JANSSON_HDR_PUBLIC}")
|
||||||
|
#TODO: fix this.
|
||||||
|
|
||||||
|
# Create pkg-conf file.
|
||||||
|
# (We use the same files as ./configure does, so we
|
||||||
|
# have to defined the same variables used there).
|
||||||
|
set(prefix ${CMAKE_INSTALL_PREFIX})
|
||||||
|
set(exec_prefix ${CMAKE_INSTALL_PREFIX})
|
||||||
|
set(libdir ${CMAKE_INSTALL_PREFIX}/${JANSSON_INSTALL_LIB_DIR})
|
||||||
|
set(VERSION ${JANSSON_DISPLAY_VERSION})
|
||||||
|
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/jansson.pc.in
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/jansson.pc @ONLY)
|
||||||
|
|
||||||
|
#
|
||||||
|
# Install targets.
|
||||||
|
#
|
||||||
|
install(TARGETS jansson
|
||||||
|
EXPORT JanssonTargets
|
||||||
|
LIBRARY DESTINATION "${JANSSON_INSTALL_LIB_DIR}" COMPONENT lib
|
||||||
|
ARCHIVE DESTINATION "${JANSSON_INSTALL_LIB_DIR}" COMPONENT lib
|
||||||
|
RUNTIME DESTINATION "${JANSSON_INSTALL_BIN_DIR}" COMPONENT lib # Windows DLLs
|
||||||
|
PUBLIC_HEADER DESTINATION "${JANSSON_INSTALL_INCLUDE_DIR}" COMPONENT dev)
|
||||||
|
|
||||||
|
# Install the pkg-config.
|
||||||
|
install (FILES
|
||||||
|
${CMAKE_CURRENT_BINARY_DIR}/jansson.pc
|
||||||
|
DESTINATION ${JANSSON_INSTALL_LIB_DIR}/pkgconfig COMPONENT dev)
|
||||||
|
|
||||||
|
# Install the configs.
|
||||||
|
install(FILES
|
||||||
|
${PROJECT_BINARY_DIR}/${CMAKE_FILES_DIRECTORY}/JanssonConfig.cmake
|
||||||
|
${PROJECT_BINARY_DIR}/JanssonConfigVersion.cmake
|
||||||
|
DESTINATION "${JANSSON_INSTALL_CMAKE_DIR}" COMPONENT dev)
|
||||||
|
|
||||||
|
# Install exports for the install-tree.
|
||||||
|
install(EXPORT JanssonTargets
|
||||||
|
DESTINATION "${JANSSON_INSTALL_CMAKE_DIR}" COMPONENT dev)
|
||||||
|
|
||||||
|
# For use when simply using add_library from a parent project to build jansson.
|
||||||
|
set(JANSSON_LIBRARIES jansson CACHE STRING "Jansson libraries")
|
||||||
|
17
cmake/JanssonConfig.cmake.in
Normal file
17
cmake/JanssonConfig.cmake.in
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
# - Config file for the jansson package
|
||||||
|
# It defines the following variables
|
||||||
|
# JANSSON_INCLUDE_DIRS - include directories for FooBar
|
||||||
|
# JANSSON_LIBRARIES - libraries to link against
|
||||||
|
|
||||||
|
# Get the path of the current file.
|
||||||
|
get_filename_component(JANSSON_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||||
|
|
||||||
|
# Set the include directories.
|
||||||
|
set(JANSSON_INCLUDE_DIRS "@JANSSON__INCLUDE_DIRS@")
|
||||||
|
|
||||||
|
# Include the project Targets file, this contains definitions for IMPORTED targets.
|
||||||
|
include(${JANSSON_CMAKE_DIR}/JanssonTargets.cmake)
|
||||||
|
|
||||||
|
# IMPORTED targets from JanssonTargets.cmake
|
||||||
|
set(JANSSON_LIBRARIES jansson)
|
||||||
|
|
11
cmake/JanssonConfigVersion.cmake.in
Normal file
11
cmake/JanssonConfigVersion.cmake.in
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
set(PACKAGE_VERSION "@JANSSON_DISPLAY_VERSION@")
|
||||||
|
|
||||||
|
# Check whether the requested PACKAGE_FIND_VERSION is compatible
|
||||||
|
if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
|
||||||
|
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
||||||
|
else()
|
||||||
|
set(PACKAGE_VERSION_COMPATIBLE TRUE)
|
||||||
|
if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
|
||||||
|
set(PACKAGE_VERSION_EXACT TRUE)
|
||||||
|
endif()
|
||||||
|
endif()
|
@ -17,7 +17,9 @@
|
|||||||
#define JANSSON_CONFIG_H
|
#define JANSSON_CONFIG_H
|
||||||
|
|
||||||
/* Define this so that we can disable scattered automake configuration in source files */
|
/* Define this so that we can disable scattered automake configuration in source files */
|
||||||
|
#ifndef JANSSON_USING_CMAKE
|
||||||
#define JANSSON_USING_CMAKE
|
#define JANSSON_USING_CMAKE
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Note: when using cmake, JSON_INTEGER_IS_LONG_LONG is not defined nor used,
|
/* Note: when using cmake, JSON_INTEGER_IS_LONG_LONG is not defined nor used,
|
||||||
* as we will also check for __int64 etc types.
|
* as we will also check for __int64 etc types.
|
||||||
|
@ -4,7 +4,7 @@ AC_INIT([jansson], [2.5], [petri@digip.org])
|
|||||||
AM_INIT_AUTOMAKE([1.10 foreign])
|
AM_INIT_AUTOMAKE([1.10 foreign])
|
||||||
|
|
||||||
AC_CONFIG_SRCDIR([src/value.c])
|
AC_CONFIG_SRCDIR([src/value.c])
|
||||||
AC_CONFIG_HEADERS([config.h])
|
AC_CONFIG_HEADERS([jansson_private_config.h])
|
||||||
|
|
||||||
# Checks for programs.
|
# Checks for programs.
|
||||||
AC_PROG_CC
|
AC_PROG_CC
|
||||||
|
@ -5,9 +5,9 @@
|
|||||||
#include "jansson_private.h"
|
#include "jansson_private.h"
|
||||||
#include "strbuffer.h"
|
#include "strbuffer.h"
|
||||||
|
|
||||||
/* need config.h to get the correct snprintf */
|
/* need jansson_private_config.h to get the correct snprintf */
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
#include <config.h>
|
#include <jansson_private_config.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if JSON_HAVE_LOCALECONV
|
#if JSON_HAVE_LOCALECONV
|
||||||
|
@ -9,7 +9,8 @@
|
|||||||
#define UTF_H
|
#define UTF_H
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
#include <config.h>
|
|
||||||
|
#include <jansson_private_config.h>
|
||||||
|
|
||||||
#ifdef HAVE_INTTYPES_H
|
#ifdef HAVE_INTTYPES_H
|
||||||
/* inttypes.h includes stdint.h in a standard environment, so there's
|
/* inttypes.h includes stdint.h in a standard environment, so there's
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
#include <config.h>
|
#include <jansson_private_config.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
#include <config.h>
|
#include <jansson_private_config.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <jansson_config.h>
|
#include <jansson_config.h>
|
||||||
|
@ -9,7 +9,7 @@
|
|||||||
#define UTIL_H
|
#define UTIL_H
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
#include <config.h>
|
#include <jansson_private_config.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
|
Loading…
Reference in New Issue
Block a user