# list depends here. add_subdirectory(lua) add_subdirectory(md5) add_subdirectory(protobuf) # Don't build tinyxml if it's being externally linked against. if(NOT TinyXML_FOUND) add_subdirectory(tinyxml) endif() add_subdirectory(tthread) option(JSONCPP_WITH_TESTS "Compile and (for jsoncpp_check) run JsonCpp test executables" OFF) option(JSONCPP_WITH_POST_BUILD_UNITTEST "Automatically run unit-tests as a post build step" OFF) add_subdirectory(jsoncpp-sub EXCLUDE_FROM_ALL) # build clsocket static and only as a dependency. Setting those options here overrides its own default settings. option(CLSOCKET_SHARED "Build clsocket lib as shared." OFF) option(CLSOCKET_DEP_ONLY "Build for use inside other CMake projects as dependency." ON) add_subdirectory(clsocket) ide_folder(clsocket "Depends") # assemble environment args to pass on to dependency projects get_cmake_property(vars CACHE_VARIABLES) foreach(var ${vars}) if(var MATCHES "^CMAKE_" AND NOT var MATCHES "^CMAKE_CACHE" AND NOT var MATCHES "^CMAKE_HOME" AND NOT var MATCHES "^CMAKE_PROJECT") list(APPEND CL_ARGS "-D${var}=${${var}}") endif() if(var MATCHES "^ZLIB") list(APPEND CL_ARGS "-D${var}=${${var}}") endif() endforeach() include(ExternalProject) if(WIN32) set(XLSXIO_C_FLAGS "${CMAKE_C_FLAGS} /DXML_STATIC") else() set(XLSXIO_C_FLAGS "${CMAKE_C_FLAGS} -DXML_STATIC") endif() # set the default values of libexpat options - the descriptions are left empty # because later option() calls *do* override those set(EXPAT_BUILD_EXAMPLES OFF CACHE BOOL "") set(EXPAT_BUILD_TESTS OFF CACHE BOOL "") set(EXPAT_BUILD_TOOLS OFF CACHE BOOL "") set(EXPAT_SHARED_LIBS OFF CACHE BOOL "") set(EXPAT_BUILD_DOCS OFF CACHE BOOL "") add_subdirectory(libexpat/expat) set(LIBZIP_INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/libzip) set(LIBZIP_LIB ${LIBZIP_INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}zip${CMAKE_STATIC_LIBRARY_SUFFIX}) set(LIBZIP_LIB ${LIBZIP_LIB} PARENT_SCOPE) ExternalProject_Add(libzip_project PREFIX libzip SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libzip INSTALL_DIR ${LIBZIP_INSTALL_DIR} BUILD_BYPRODUCTS ${LIBZIP_LIB} CMAKE_GENERATOR "${CMAKE_GENERATOR}" CMAKE_GENERATOR_TOOLSET "${CMAKE_GENERATOR_TOOLSET}" CMAKE_ARGS ${CL_ARGS} -DCMAKE_INSTALL_PREFIX=${LIBZIP_INSTALL_DIR} -DCMAKE_BUILD_TYPE=Release -DBUILD_DOC=OFF -DBUILD_EXAMPLES=OFF -DBUILD_REGRESS=OFF -DBUILD_SHARED_LIBS=OFF -DBUILD_TOOLS=OFF -DENABLE_BZIP2=OFF -DENABLE_COMMONCRYPTO=OFF -DENABLE_GNUTLS=OFF -DENABLE_LZMA=OFF -DENABLE_MBEDTLS=OFF -DENABLE_OPENSSL=OFF -DENABLE_WINDOWS_CRYPTO=OFF -DCMAKE_INSTALL_LIBDIR=lib -DCMAKE_POSITION_INDEPENDENT_CODE=ON ) set(XLSXIO_INSTALL_DIR ${CMAKE_CURRENT_BINARY_DIR}/xlsxio) set(XLSXIO_INSTALL_DIR ${XLSXIO_INSTALL_DIR} PARENT_SCOPE) set(XLSXIO_LIB ${XLSXIO_INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}xlsxio_read${CMAKE_STATIC_LIBRARY_SUFFIX}) set(XLSXIO_LIB ${XLSXIO_LIB} PARENT_SCOPE) ExternalProject_Add(xlsxio_project PREFIX xlsxio DEPENDS libzip_project SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/xlsxio INSTALL_DIR ${XLSXIO_INSTALL_DIR} BUILD_BYPRODUCTS ${XLSXIO_LIB} CMAKE_GENERATOR "${CMAKE_GENERATOR}" CMAKE_GENERATOR_TOOLSET "${CMAKE_GENERATOR_TOOLSET}" CMAKE_ARGS ${CL_ARGS} -DCMAKE_INSTALL_PREFIX=${XLSXIO_INSTALL_DIR} -DCMAKE_BUILD_TYPE=Release -DBUILD_STATIC=ON -DBUILD_SHARED=OFF -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_TOOLS=OFF -DBUILD_EXAMPLES=OFF -DBUILD_DOCUMENTATION=OFF -DWITH_LIBZIP=ON -DZLIB_DIR=${ZLIB_DIR} -DLIBZIP_DIR=${LIBZIP_INSTALL_DIR} -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_C_FLAGS=${XLSXIO_C_FLAGS} )