1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- cmake_minimum_required(VERSION 2.8)
- find_package(CJSON REQUIRED) # to have CJSON_PREFIX and CJSON_INSTALL_DIR
- include(ExternalProject)
- set(CJSON_RELEASE 1.4.0)
- set(CJSON_COMMIT 030d0c14cc5e411758aaa4680e11ba82ebf61bc0)
- set(CJSON_GIT https://github.com/DaveGamble/cJSON.git)
- #set(CJSON_INSTALL_DIR ${CMAKE_BINARY_DIR}/downloads/install)
- set(CJSON_CMAKE_ARGS -DCMAKE_INSTALL_PREFIX:PATH=${CJSON_INSTALL_DIR})
- set(CJSON_CMAKE_ARGS ${CJSON_CMAKE_ARGS} -DBUILD_SHARED_LIBS=OFF -DENABLE_CJSON_TEST=OFF)
- set(CJSON_PATCH_COMMAND "")
- set(CJSON_CMAKE_CACHE_ARGS "")
- # Pass toolchain
- if(NOT "${CMAKE_TOOLCHAIN_FILE}" STREQUAL "")
- set(CJSON_CMAKE_CACHE_ARGS ${CJSON_CMAKE_CACHE_ARGS} -DCMAKE_TOOLCHAIN_FILE:STRING=${CMAKE_TOOLCHAIN_FILE})
- set(CJSON_CMAKE_CACHE_ARGS ${CJSON_CMAKE_CACHE_ARGS} -DCMAKE_TOOLCHAIN_FILE:STRING=${CMAKE_TOOLCHAIN_FILE})
- endif()
- # Need to set the build type
- set(CJSON_CMAKE_CACHE_ARGS ${CJSON_CMAKE_CACHE_ARGS} -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE})
- # Pass any non default configuration
- if(CMAKE_CONFIGURATION_TYPES)
- foreach(CONFIG_NAME ${CMAKE_CONFIGURATION_TYPES})
- if(NOT "${CONFIG_NAME}" STREQUAL "Debug" AND
- NOT "${CONFIG_NAME}" STREQUAL "Release" AND
- NOT "${CONFIG_NAME}" STREQUAL "MinSizeRel" AND
- NOT "${CONFIG_NAME}" STREQUAL "RelWithDebInfo")
- string(TOUPPER ${CONFIG_NAME} CONFIG_NAME)
- #Set the flags for this configuration
- foreach(FLAGS_NAME CXX_FLAGS C_FLAGS) #Compiler flags
- set(CJSON_CMAKE_CACHE_ARGS ${CJSON_CMAKE_CACHE_ARGS} -DCMAKE_${FLAGS_NAME}_${CONFIG_NAME}:STRING=${CMAKE_${FLAGS_NAME}_${CONFIG_NAME}})
- endforeach()
- foreach(FLAGS_NAME EXE_LINKER_FLAGS MODULE_LINKER_FLAGS SHARED_LINKER_FLAGS) #Linker flags
- set(CJSON_CMAKE_CACHE_ARGS ${CJSON_CMAKE_CACHE_ARGS} -DCMAKE_${FLAGS_NAME}_${CONFIG_NAME}:STRING=${CMAKE_${FLAGS_NAME}_${CONFIG_NAME}})
- endforeach()
- endif()
- endforeach()
- set(CJSON_CMAKE_CACHE_ARGS ${CJSON_CMAKE_CACHE_ARGS} -DCMAKE_CONFIGURATION_TYPES:STRING=${CMAKE_CONFIGURATION_TYPES})
- endif()
- ExternalProject_Add(
- ${CJSON_NAME}
- GIT_REPOSITORY ${CJSON_GIT}
- GIT_TAG ${CJSON_COMMIT}
- DOWNLOAD_DIR ${CMAKE_CURRENT_BINARY_DIR}/libraries/cjson/download
- SOURCE_DIR ${CMAKE_CURRENT_BINARY_DIR}/libraries/cjson/source
- BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/libraries/cjson
- INSTALL_DIR ${CJSON_INSTALL_DIR}
- CMAKE_ARGS ${CJSON_CMAKE_ARGS}
- CMAKE_CACHE_ARGS ${CJSON_CMAKE_CACHE_ARGS}
- )
|