mirror of
https://github.com/open-source-parsers/jsoncpp.git
synced 2025-06-08 17:30:13 +02:00
Add CMake package file generation support
This commit is contained in:
parent
1c3a20de50
commit
dc84d96a49
@ -6,6 +6,7 @@ OPTION(JSONCPP_WITH_TESTS "Compile and run JsonCpp test executables" ON)
|
|||||||
OPTION(JSONCPP_WITH_POST_BUILD_UNITTEST "Automatically run unit-tests as a post build step" ON)
|
OPTION(JSONCPP_WITH_POST_BUILD_UNITTEST "Automatically run unit-tests as a post build step" ON)
|
||||||
OPTION(JSONCPP_WITH_WARNING_AS_ERROR "Force compilation to fail if a warning occurs" OFF)
|
OPTION(JSONCPP_WITH_WARNING_AS_ERROR "Force compilation to fail if a warning occurs" OFF)
|
||||||
OPTION(JSONCPP_WITH_PKGCONFIG_SUPPORT "Generate and install .pc files" ON)
|
OPTION(JSONCPP_WITH_PKGCONFIG_SUPPORT "Generate and install .pc files" ON)
|
||||||
|
OPTION(JSONCPP_WITH_CMAKE_PACKAGE "Generate and install cmake package files" OFF)
|
||||||
|
|
||||||
# Ensures that CMAKE_BUILD_TYPE is visible in cmake-gui on Unix
|
# Ensures that CMAKE_BUILD_TYPE is visible in cmake-gui on Unix
|
||||||
IF(NOT WIN32)
|
IF(NOT WIN32)
|
||||||
@ -24,7 +25,9 @@ SET(LIBRARY_INSTALL_DIR lib
|
|||||||
CACHE PATH "Install dir for shared libraries")
|
CACHE PATH "Install dir for shared libraries")
|
||||||
SET(INCLUDE_INSTALL_DIR include
|
SET(INCLUDE_INSTALL_DIR include
|
||||||
CACHE PATH "Install dir for headers")
|
CACHE PATH "Install dir for headers")
|
||||||
MARK_AS_ADVANCED( RUNTIME_INSTALL_DIR ARCHIVE_INSTALL_DIR INCLUDE_INSTALL_DIR )
|
SET(PACKAGE_INSTALL_DIR lib/cmake
|
||||||
|
CACHE PATH "Install dir for cmake package config files")
|
||||||
|
MARK_AS_ADVANCED( RUNTIME_INSTALL_DIR ARCHIVE_INSTALL_DIR INCLUDE_INSTALL_DIR PACKAGE_INSTALL_DIR )
|
||||||
|
|
||||||
# This ensures shared DLL are in the same dir as executable on Windows.
|
# This ensures shared DLL are in the same dir as executable on Windows.
|
||||||
# Put all executables / libraries are in a project global directory.
|
# Put all executables / libraries are in a project global directory.
|
||||||
@ -101,6 +104,12 @@ IF(JSONCPP_WITH_PKGCONFIG_SUPPORT)
|
|||||||
DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig")
|
DESTINATION "${CMAKE_INSTALL_PREFIX}/lib/pkgconfig")
|
||||||
ENDIF(JSONCPP_WITH_PKGCONFIG_SUPPORT)
|
ENDIF(JSONCPP_WITH_PKGCONFIG_SUPPORT)
|
||||||
|
|
||||||
|
IF(JSONCPP_WITH_CMAKE_PACKAGE)
|
||||||
|
INSTALL(EXPORT jsoncpp
|
||||||
|
DESTINATION ${PACKAGE_INSTALL_DIR}/jsoncpp
|
||||||
|
FILE jsoncppConfig.cmake)
|
||||||
|
ENDIF(JSONCPP_WITH_CMAKE_PACKAGE)
|
||||||
|
|
||||||
# Build the different applications
|
# Build the different applications
|
||||||
ADD_SUBDIRECTORY( src )
|
ADD_SUBDIRECTORY( src )
|
||||||
|
|
||||||
|
@ -40,7 +40,17 @@ SET_TARGET_PROPERTIES( jsoncpp_lib PROPERTIES OUTPUT_NAME jsoncpp )
|
|||||||
SET_TARGET_PROPERTIES( jsoncpp_lib PROPERTIES VERSION ${JSONCPP_VERSION} SOVERSION ${JSONCPP_VERSION_MAJOR} )
|
SET_TARGET_PROPERTIES( jsoncpp_lib PROPERTIES VERSION ${JSONCPP_VERSION} SOVERSION ${JSONCPP_VERSION_MAJOR} )
|
||||||
|
|
||||||
# Install instructions for this target
|
# Install instructions for this target
|
||||||
INSTALL( TARGETS jsoncpp_lib
|
IF(JSONCPP_WITH_CMAKE_PACKAGE)
|
||||||
|
TARGET_INCLUDE_DIRECTORIES( jsoncpp_lib
|
||||||
|
PUBLIC $<INSTALL_INTERFACE:${INCLUDE_INSTALL_DIR}>
|
||||||
|
$<BUILD_INTERFACE:${CMAKE_CURRENT_LIST_DIR}/${JSON_INCLUDE_DIR}>
|
||||||
|
)
|
||||||
|
SET(INSTALL_EXPORT EXPORT jsoncpp)
|
||||||
|
ELSE(JSONCPP_WITH_CMAKE_PACKAGE)
|
||||||
|
SET(INSTALL_EXPORT)
|
||||||
|
ENDIF(JSONCPP_WITH_CMAKE_PACKAGE)
|
||||||
|
|
||||||
|
INSTALL( TARGETS jsoncpp_lib ${INSTALL_EXPORT}
|
||||||
RUNTIME DESTINATION ${RUNTIME_INSTALL_DIR}
|
RUNTIME DESTINATION ${RUNTIME_INSTALL_DIR}
|
||||||
LIBRARY DESTINATION ${LIBRARY_INSTALL_DIR}
|
LIBRARY DESTINATION ${LIBRARY_INSTALL_DIR}
|
||||||
ARCHIVE DESTINATION ${ARCHIVE_INSTALL_DIR}
|
ARCHIVE DESTINATION ${ARCHIVE_INSTALL_DIR}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user