GEODE-6239: Updates third party dependencies. (#426)
- Updates ACE to 6.5.3
- Updates GTest to 1.8.1
- Updates OpenSSL to 1.1.1a
- Updated to use more modern CMake patterns.
- Fixes mutli config builds.
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2802259..87add64 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -38,6 +38,12 @@
endif()
endif()
+get_property(GENERATOR_IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
+if(NOT CMAKE_BUILD_TYPE AND NOT GENERATOR_IS_MULTI_CONFIG)
+ message(STATUS "Using default build type 'Debug'.")
+ set(CMAKE_BUILD_TYPE Debug CACHE STRING "Specifies the build type on single-configuration generators." FORCE)
+endif()
+
set(CMAKE_DOTNET_TARGET_FRAMEWORK_VERSION "4.5.2")
set(DOTNET_TARGET_FRAMEWORK_VERSION "4.5.2")
set(BUILD_BITS 64 CACHE STRING "Build for 64 (Geode default) or 32 bit.")
@@ -90,11 +96,6 @@
# $ cmake -G Xcode -DCMAKE_INSTALL_PREFIX=/my/favorite/location ..
set(CMAKE_INSTALL_PREFIX "nativeclient" CACHE STRING "Install prefix")
-set(CMAKE_CONFIGURATION_TYPES Debug Release)
-if (NOT CMAKE_BUILD_TYPE)
- set(CMAKE_BUILD_TYPE Debug)
-endif()
-
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
# TODO this doesn't seem to have effect
@@ -296,14 +297,6 @@
message(FATAL_ERROR "Utility ar not found.")
endif()
-if (WIN32 OR ${CMAKE_GENERATOR} STREQUAL "Xcode")
- set(CMAKE_USES_BUILDTYPE TRUE)
- set ( _DEBUG_OR_RELEASE $<$<CONFIG:Debug>:Debug>$<$<NOT:$<CONFIG:Debug>>:Release>)
-else()
- set(CMAKE_USES_BUILDTYPE FALSE)
- set ( _DEBUG_OR_RELEASE .)
-endif()
-
# Default to only showing output on failure for unit tests but allow
# overriding with the CTEST_UNITTEST_VERBOSITY environment variable.
set(CTEST_UNITTEST_VERBOSITY --output-on-failure)
@@ -375,4 +368,4 @@
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
COMMENT "Checking source with Apache Rat."
)
-endif()
\ No newline at end of file
+endif()
diff --git a/clicache/integration-test/CMakeLists.txt b/clicache/integration-test/CMakeLists.txt
index c849d06..cf8cd1d 100644
--- a/clicache/integration-test/CMakeLists.txt
+++ b/clicache/integration-test/CMakeLists.txt
@@ -56,7 +56,7 @@
)
endmacro()
-foreach( lib ssl sqlite )
+foreach( lib OpenSSL::SSL SQLite::sqlite3 )
get_target_property(runtime_path ${lib} INTERFACE_RUNTIME_DIR)
set(PATH ${PATH} ${runtime_path})
endforeach()
diff --git a/clicache/integration-test/UnitTests.csproj.in b/clicache/integration-test/UnitTests.csproj.in
index 8fc93ff..47ead0b 100644
--- a/clicache/integration-test/UnitTests.csproj.in
+++ b/clicache/integration-test/UnitTests.csproj.in
@@ -615,7 +615,7 @@
<Content Include="authz-ldap.xml" />
</ItemGroup>
<ItemGroup>
- <ProjectReference Include="$(CMAKE_BINARY_DIR)\plugins\SQLiteCLI\SQLiteCLI.csproj">
+ <ProjectReference Include="$(CMAKE_BINARY_DIR)\plugins\SQLiteCLI\Apache.Geode.Plugins.SQLite.csproj">
<Project>{FF9597E3-A4DD-4FDE-871D-B0C66088762F}</Project>
<Name>SQLiteCLI</Name>
</ProjectReference>
diff --git a/clicache/integration-test2/CMakeLists.txt b/clicache/integration-test2/CMakeLists.txt
index e1b242f..24cf0fe 100644
--- a/clicache/integration-test2/CMakeLists.txt
+++ b/clicache/integration-test2/CMakeLists.txt
@@ -20,44 +20,50 @@
get_target_property(JAVAOBJECT_JAR_PATH javaobject JAR_FILE)
-set(CRYPTO_IMPL_PATH "/../../../cryptoimpl/${CMAKE_BUILD_TYPE}")
-set(OPENSSL_PATH "/../../../dependencies/openssl/openssl-extern-prefix/${CMAKE_BUILD_TYPE}/bin")
-
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/packages.config ${CMAKE_CURRENT_BINARY_DIR}/packages.config COPYONLY)
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Config.cs.in ${CMAKE_CURRENT_BINARY_DIR}/Config.cs)
add_library( ${PROJECT_NAME} SHARED
- Cluster.cs
- ClusterTest.cs
- Config.cs.in
- ${CMAKE_CURRENT_BINARY_DIR}/Config.cs
- GfshTest.cs
- GfshExecuteTest.cs
- Gfsh.cs
- GfshExecute.cs
- CacheXml.cs
- CacheXmlTests.cs
- CqOperationTest.cs
- FunctionExecutionTest.cs
- QueryTest.cs
- RegionTest.cs
- RegionSSLTest.cs
- Position.cs
- TestBase.cs
- cache.xml
- geode.properties
- xunit.runner.json
- packages.config
- SerializationTests.cs
- ClientSslKeys/client_keystore.password.pem
- ClientSslKeys/client_truststore.pem
- ServerSslKeys/server_keystore.jks
- ServerSslKeys/server_truststore.jks
+ Cluster.cs
+ ClusterTest.cs
+ Config.cs.in
+ ${CMAKE_CURRENT_BINARY_DIR}/Config.cs
+ GfshTest.cs
+ GfshExecuteTest.cs
+ Gfsh.cs
+ GfshExecute.cs
+ CacheXml.cs
+ CacheXmlTests.cs
+ CqOperationTest.cs
+ FunctionExecutionTest.cs
+ QueryTest.cs
+ RegionTest.cs
+ RegionSSLTest.cs
+ Position.cs
+ TestBase.cs
+ cache.xml
+ geode.properties
+ xunit.runner.json
+ packages.config
+ SerializationTests.cs
+ ClientSslKeys/client_keystore.password.pem
+ ClientSslKeys/client_truststore.pem
+ ServerSslKeys/server_keystore.jks
+ ServerSslKeys/server_truststore.jks
)
-set_source_files_properties(cache.xml server.xml xunit.runner.json geode.properties ClientSslKeys/client_keystore.password.pem ClientSslKeys/client_truststore.pem ServerSslKeys/server_keystore.jks ServerSslKeys/server_truststore.jks PROPERTIES
- VS_COPY_TO_OUT_DIR Always
- VS_TOOL_OVERRIDE "None"
+set_source_files_properties(
+ cache.xml
+ server.xml
+ xunit.runner.json
+ geode.properties
+ ClientSslKeys/client_keystore.password.pem
+ ClientSslKeys/client_truststore.pem
+ ServerSslKeys/server_keystore.jks
+ ServerSslKeys/server_truststore.jks
+ PROPERTIES
+ VS_COPY_TO_OUT_DIR Always
+ VS_TOOL_OVERRIDE None
)
target_link_libraries(${PROJECT_NAME}
@@ -91,3 +97,13 @@
endif()
add_dependencies(${PROJECT_NAME} nuget-restore)
+
+add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
+ COMMAND ${CMAKE_COMMAND} -E copy_directory
+ $<SHELL_PATH:$<TARGET_GENEX_EVAL:OpenSSL::SSL,$<TARGET_PROPERTY:OpenSSL::SSL,INTERFACE_RUNTIME_DIR>>>
+ $<SHELL_PATH:$<TARGET_FILE_DIR:${PROJECT_NAME}>>
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ $<SHELL_PATH:$<TARGET_FILE:cryptoImpl>>
+ $<$<CONFIG:Debug>:$<SHELL_PATH:$<TARGET_PDB_FILE:cryptoImpl>>>
+ $<SHELL_PATH:$<TARGET_FILE_DIR:${PROJECT_NAME}>>
+)
diff --git a/clicache/integration-test2/Config.cs.in b/clicache/integration-test2/Config.cs.in
index 5c50e97..abfb0dd 100644
--- a/clicache/integration-test2/Config.cs.in
+++ b/clicache/integration-test2/Config.cs.in
@@ -28,14 +28,4 @@
{
get { return @"@JAVAOBJECT_JAR_PATH@"; }
}
-
- public static string CryptoImplPath
- {
- get { return @"@CRYPTO_IMPL_PATH@"; }
- }
-
- public static string OpenSSLPath
- {
- get { return @"@OPENSSL_PATH@"; }
- }
}
diff --git a/clicache/integration-test2/RegionSSLTest.cs b/clicache/integration-test2/RegionSSLTest.cs
index 5446c4c..eb6d908 100644
--- a/clicache/integration-test2/RegionSSLTest.cs
+++ b/clicache/integration-test2/RegionSSLTest.cs
@@ -24,44 +24,22 @@
[Trait("Category", "Integration")]
public class RegionSSLTest : TestBase, IDisposable
{
- private readonly Cache cacheOne_;
+ private readonly Cache cache_;
public RegionSSLTest()
{
- var pathvar = Environment.GetEnvironmentVariable("PATH");
-
- var openSslPath = Environment.CurrentDirectory + Config.OpenSSLPath;
-
- if (!Directory.Exists(openSslPath))
- {
- throw new DirectoryNotFoundException("OpenSSL is a prerequisite for integration tests and the directory was not found.");
- }
-
- pathvar += ";" + openSslPath;
-
- var cryptoImplPath = Environment.CurrentDirectory + Config.CryptoImplPath;
-
- if (!File.Exists(cryptoImplPath + "\\cryptoImpl.dll"))
- {
- throw new System.IO.FileNotFoundException("cryptoImpl.dll was not found at " + cryptoImplPath);
- }
-
- pathvar += ";" + cryptoImplPath;
-
- Environment.SetEnvironmentVariable("PATH", pathvar);
-
var cacheFactory = new CacheFactory();
cacheFactory.Set("ssl-enabled", "true");
cacheFactory.Set("ssl-keystore", Environment.CurrentDirectory + "\\ClientSslKeys\\client_keystore.password.pem");
cacheFactory.Set("ssl-keystore-password", "gemstone");
cacheFactory.Set("ssl-truststore", Environment.CurrentDirectory + "\\ClientSslKeys\\client_truststore.pem");
- cacheOne_ = cacheFactory.Create();
+ cache_ = cacheFactory.Create();
}
public void Dispose()
{
- cacheOne_.Close();
+ cache_.Close();
}
[Fact]
@@ -78,11 +56,11 @@
.withType("PARTITION")
.execute(), 0);
- cacheOne_.GetPoolFactory()
+ cache_.GetPoolFactory()
.AddLocator(cluster.Gfsh.LocatorBindAddress, cluster.Gfsh.LocatorPort)
.Create("default");
- var regionFactory = cacheOne_.CreateRegionFactory(RegionShortcut.PROXY)
+ var regionFactory = cache_.CreateRegionFactory(RegionShortcut.PROXY)
.SetPoolName("default");
var region = regionFactory.Create<string, string>("testRegion1");
diff --git a/clicache/plugins/SQLiteCLI/CMakeLists.txt b/clicache/plugins/SQLiteCLI/CMakeLists.txt
index f6440eb..8000a84 100644
--- a/clicache/plugins/SQLiteCLI/CMakeLists.txt
+++ b/clicache/plugins/SQLiteCLI/CMakeLists.txt
@@ -27,12 +27,15 @@
PdxClassLibrary
)
+get_target_property(SQLite_netFx_INTERFACE_LINK_LIBRARIES SQLite::netFx INTERFACE_LINK_LIBRARIES)
+
set_target_properties( ${PROJECT_NAME} PROPERTIES
- COMMON_LANGUAGE_RUNTIME ""
VS_GLOBAL_ROOTNAMESPACE ${PROJECT_NAME}
VS_GLOBAL_TreatWarningsAsErrors True
VS_GLOBAL_PROJECT_TYPES "{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}"
- VS_DOTNET_REFERENCE_System.Data.SQLite ${sqlite-netFx_SHARED_LIB}
+ VS_DOTNET_REFERENCE_System.Data.SQLite "${SQLite_netFx_INTERFACE_LINK_LIBRARIES}"
VS_DOTNET_REFERENCES "System;System.Data;System.Xml"
FOLDER cli/plugins
-)
\ No newline at end of file
+)
+
+add_dependencies(${PROJECT_NAME} SQLite::netFx)
diff --git a/cppcache/CMakeLists.txt b/cppcache/CMakeLists.txt
index e4afd54..78ab164 100644
--- a/cppcache/CMakeLists.txt
+++ b/cppcache/CMakeLists.txt
@@ -95,11 +95,11 @@
endif()
target_link_libraries(_apache-geode INTERFACE
- ACE
+ ACE::ACE
Boost::boost
Boost::filesystem
Boost::thread
- libxml2
+ LibXml2::LibXml2
)
if (USE_PCH)
diff --git a/cppcache/integration-test/CMakeLists.txt b/cppcache/integration-test/CMakeLists.txt
index 8f975c5..3352da4 100644
--- a/cppcache/integration-test/CMakeLists.txt
+++ b/cppcache/integration-test/CMakeLists.txt
@@ -24,7 +24,7 @@
)
target_link_libraries(test-cppcache-utils
PRIVATE
- ACE
+ ACE::ACE
_WarningsAsError
PUBLIC
apache-geode
@@ -49,7 +49,7 @@
add_library(unit_test_callbacks SHARED LibraryCallbacks.cpp)
target_link_libraries(unit_test_callbacks
PRIVATE
- ACE
+ ACE::ACE
_WarningsAsError
PUBLIC
apache-geode
@@ -76,7 +76,7 @@
endmacro()
# Add lazy loaded shared library paths to test environment
-foreach( lib ssl sqlite )
+foreach( lib OpenSSL::SSL SQLite::sqlite3 )
get_target_property(library_path ${lib} INTERFACE_LIBRARY_DIR)
set(LD_LIBRARY_PATH ${LD_LIBRARY_PATH} ${library_path})
get_target_property(runtime_path ${lib} INTERFACE_RUNTIME_DIR)
@@ -99,7 +99,7 @@
target_link_libraries(${TEST}
PRIVATE
- ACE
+ ACE::ACE
test-cppcache-utils
_WarningsAsError
_CppCodeCoverage
diff --git a/cppcache/integration/framework/CMakeLists.txt b/cppcache/integration/framework/CMakeLists.txt
index 50b7d29..8aa234c 100644
--- a/cppcache/integration/framework/CMakeLists.txt
+++ b/cppcache/integration/framework/CMakeLists.txt
@@ -42,7 +42,7 @@
target_link_libraries(integration-framework
PUBLIC
apache-geode
- GTest::GTest
+ GTest::gtest
Boost::boost
Boost::system
Boost::log
diff --git a/cppcache/integration/test/CMakeLists.txt b/cppcache/integration/test/CMakeLists.txt
index f371251..0580a0a 100644
--- a/cppcache/integration/test/CMakeLists.txt
+++ b/cppcache/integration/test/CMakeLists.txt
@@ -42,9 +42,9 @@
apache-geode
integration-framework
testobject
- ACE
- GTest::GTest
- GTest::Main
+ ACE::ACE
+ GTest::gtest
+ GTest::gtest_main
Boost::boost
Boost::system
Boost::log
diff --git a/cppcache/test/CMakeLists.txt b/cppcache/test/CMakeLists.txt
index 89ef0b9..e9c2c9e 100644
--- a/cppcache/test/CMakeLists.txt
+++ b/cppcache/test/CMakeLists.txt
@@ -63,8 +63,8 @@
target_link_libraries(apache-geode_unittests
PRIVATE
apache-geode-static
- GTest::GTest
- GTest::Main
+ GTest::gtest
+ GTest::gtest_main
Boost::boost
Boost::thread
_WarningsAsError
diff --git a/cryptoimpl/CMakeLists.txt b/cryptoimpl/CMakeLists.txt
index 61acaa3..47689d9 100644
--- a/cryptoimpl/CMakeLists.txt
+++ b/cryptoimpl/CMakeLists.txt
@@ -38,13 +38,13 @@
target_link_libraries(cryptoImpl
PRIVATE
- ACE_SSL
+ ACE::ACE_SSL
_WarningsAsError
PUBLIC
- apache-geode
- crypto
- ssl
- c++11
+ apache-geode
+ OpenSSL::Crypto
+ OpenSSL::SSL
+ c++11
)
add_clangformat(cryptoImpl)
diff --git a/dependencies/ACE/CMakeLists.txt b/dependencies/ACE/CMakeLists.txt
index eb04e1c..f5129b9 100644
--- a/dependencies/ACE/CMakeLists.txt
+++ b/dependencies/ACE/CMakeLists.txt
@@ -13,14 +13,10 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-project( ACE LANGUAGES NONE )
+project( ACE VERSION 6.5.3 LANGUAGES NONE )
-set( ${PROJECT_NAME}_VERSION 6.4.7 )
-set( ${PROJECT_NAME}_SHA265 b2b59a5f49b164121a8d1c109ff04fc23fcd67cfad040772e8c045c8a34cdabe )
-string(REPLACE "." "_" _VERSION_UNDERSCORE ${${PROJECT_NAME}_VERSION})
-set( ${PROJECT_NAME}_URL "https://github.com/DOCGroup/ACE_TAO/releases/download/ACE%2BTAO-${_VERSION_UNDERSCORE}/ACE.tar.gz" )
-set( ${PROJECT_NAME}_EXTERN ${PROJECT_NAME}-extern )
-set( ${PROJECT_NAME}_DEPENDS openssl-extern )
+set( SHA256 de20bdbfcbcf7d67836e9a2c0875e4eb348a1153e19b83392608330fec3c056a )
+set( DEPENDS OpenSSL::SSL )
if ("SunOS" STREQUAL ${CMAKE_SYSTEM_NAME})
set( ACE_PLATFORM sunos5_sunc++ )
@@ -46,9 +42,8 @@
message( FATAL_ERROR "ACE_PLATFORM unset for ${CMAKE_SYSTEM_NAME}" )
endif()
-include(ExternalProject)
-set( OPENSSL_ROOT ${DEPENDENCIES_openssl_DIR} )
+set( OPENSSL_ROOT $<TARGET_PROPERTY:OpenSSL::SSL,INTERFACE_INCLUDE_DIRECTORIES>/.. )
if (${WIN32})
@@ -58,27 +53,36 @@
set( _PLATFORM win32 )
endif()
+ if (MSVC_VERSION EQUAL 1900)
+ set(_TYPE "vc14")
+ elseif((MSVC_VERSION GREATER_EQUAL 1910) AND (MSVC_VERSION LESS_EQUAL 1919))
+ set(_TYPE "vs2017")
+ endIF()
+
set ( _COMMAND_PREFIX ${CMAKE_COMMAND} -E chdir ace )
set ( _MSBUILD_FLAGS /m /p:Platform=${_PLATFORM} /p:Configuration=$<$<CONFIG:Debug>:Debug>$<$<NOT:$<CONFIG:Debug>>:Release>)
- set ( _MSBUILD_FLAGS_STATIC ${_MSBUILD_FLAGS} /t:ace_vc${MSVC_VERSION}_static /t:SSL_vc${MSVC_VERSION}_static )
+ set ( _MSBUILD_FLAGS_STATIC ${_MSBUILD_FLAGS} /t:ace_${_TYPE}_static /t:SSL_${_TYPE}_static )
include(ProcessorCount)
ProcessorCount(_NPROCS)
- set ( MPC ${PERL} ..\\bin\\mwc.pl )
- set ( MPC_FLAGS -type vc${MSVC_VERSION} -expand_vars -features ssl=1 -recurse -hierarchy -workers ${_NPROCS} -value_template MultiProcessorCompilation=true -apply_project )
+
+ find_package(Perl REQUIRED)
+
+ set ( MPC ${PERL_EXECUTABLE} ..\\bin\\mwc.pl )
+ set ( MPC_FLAGS -type ${_TYPE} -expand_vars -features ssl=1 -recurse -hierarchy -workers ${_NPROCS} -value_template MultiProcessorCompilation=true -apply_project )
#TODO add custom targets to build in parallel?
#TODO MPC has flag to replace variables with absolute paths, think we need that for devstudio builds
set ( _CONFIGURE_COMMAND ${_COMMAND_PREFIX}
${CMAKE_COMMAND} -E env ACE_ROOT=<SOURCE_DIR> SSL_ROOT=${OPENSSL_ROOT}
- ${MPC} ${MPC_FLAGS} -name_modifier "*_vc${MSVC_VERSION}_static" -static
+ ${MPC} ${MPC_FLAGS} -name_modifier "*_${_TYPE}_static" -static
-value_template staticflags+=__ACE_INLINE__
-value_template staticflags+=ACE_BUILD_DLL
-value_template staticflags+=ACE_AS_STATIC_LIBS
-value_template runtime_library=Multithreaded$<$<CONFIG:Debug>:Debug>Dll
)
- set ( _BUILD_COMMAND ${_COMMAND_PREFIX} ${MSBUILD} ACE_vc${MSVC_VERSION}_static.sln ${_MSBUILD_FLAGS} ${_MSBUILD_FLAGS_STATIC}
+ set ( _BUILD_COMMAND ${_COMMAND_PREFIX} ${CMAKE_VS_MSBUILD_COMMAND} ACE_${_TYPE}_static.sln ${_MSBUILD_FLAGS} ${_MSBUILD_FLAGS_STATIC}
)
set ( _INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory lib <INSTALL_DIR>/lib
COMMAND ${CMAKE_COMMAND} -E copy_directory ace <INSTALL_DIR>/include/ace
@@ -97,83 +101,90 @@
set ( _INSTALL_COMMAND ${_MAKE} install )
endif()
-ExternalProject_Add( ${${PROJECT_NAME}_EXTERN}
- URL ${${PROJECT_NAME}_URL}
- URL_HASH SHA256=${${PROJECT_NAME}_SHA265}
+string(REPLACE "." "_" _VERSION_UNDERSCORE ${PROJECT_VERSION})
+
+set( EXTERN ${PROJECT_NAME}-extern )
+include(ExternalProject)
+ExternalProject_Add( ${EXTERN}
+ URL "https://github.com/DOCGroup/ACE_TAO/releases/download/ACE%2BTAO-${_VERSION_UNDERSCORE}/ACE-${PROJECT_VERSION}.tar.gz"
+ URL_HASH SHA256=${SHA256}
UPDATE_COMMAND ""
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND "${_CONFIGURE_COMMAND}"
BUILD_COMMAND "${_BUILD_COMMAND}"
INSTALL_COMMAND "${_INSTALL_COMMAND}"
- DEPENDS ${${PROJECT_NAME}_DEPENDS}
+ DEPENDS ${DEPENDS}
)
-ExternalProject_Get_Property( ${${PROJECT_NAME}_EXTERN} SOURCE_DIR )
-set( ${PROJECT_NAME}_SOURCE_DIR ${SOURCE_DIR} )
-ExternalProject_Get_Property( ${${PROJECT_NAME}_EXTERN} INSTALL_DIR )
-set( ${PROJECT_NAME}_INSTALL_DIR ${INSTALL_DIR} )
-set( DEPENDENCIES_${PROJECT_NAME}_DIR ${${PROJECT_NAME}_INSTALL_DIR} PARENT_SCOPE)
+ExternalProject_Get_Property( ${EXTERN} SOURCE_DIR )
+set( SOURCE_DIR ${SOURCE_DIR} )
+ExternalProject_Get_Property( ${EXTERN} INSTALL_DIR )
+set( INSTALL_DIR ${INSTALL_DIR} )
+set( DEPENDENCIES_DIR ${INSTALL_DIR} PARENT_SCOPE)
if ("SunOS" STREQUAL ${CMAKE_SYSTEM_NAME})
set( PATCH_FILE ${CMAKE_CURRENT_SOURCE_DIR}/patches )
-ExternalProject_Add_Step( ${${PROJECT_NAME}_EXTERN} patches
- ALWAYS 0
- DEPENDEES download
- DEPENDERS patch
- DEPENDS ${PATCH_FILE}
- BYPRODUCTS ${${PROJECT_NAME}_SOURCE_DIR}/include/makeinclude/platform_sunos5_sunc++.GNU ${${PROJECT_NAME}_SOURCE_DIR}/ace/config-lite.h ${${PROJECT_NAME}_SOURCE_DIR}/ace/Stats.cpp
- WORKING_DIRECTORY ${${PROJECT_NAME}_SOURCE_DIR}
- COMMAND ${PATCH} -u -N -p1 < ${PATCH_FILE}
+ExternalProject_Add_Step( ${EXTERN} patches
+ ALWAYS 0
+ DEPENDEES download
+ DEPENDERS patch
+ DEPENDS ${PATCH_FILE}
+ BYPRODUCTS ${SOURCE_DIR}/include/makeinclude/platform_sunos5_sunc++.GNU ${SOURCE_DIR}/ace/config-lite.h ${SOURCE_DIR}/ace/Stats.cpp
+ WORKING_DIRECTORY ${SOURCE_DIR}
+ COMMAND ${Patch_EXECUTABLE} -u -N -p1 < ${PATCH_FILE}
)
endif()
configure_file(config.h.in config.h)
-ExternalProject_Add_Step( ${${PROJECT_NAME}_EXTERN} config.h
- DEPENDEES patch
- DEPENDERS configure
- DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/config.h
- BYPRODUCTS ${${PROJECT_NAME}_SOURCE_DIR}/ace/config.h
- COMMAND ${CMAKE_COMMAND} -E copy config.h ${${PROJECT_NAME}_SOURCE_DIR}/ace/config.h
+ExternalProject_Add_Step( ${EXTERN} config.h
+ DEPENDEES patch
+ DEPENDERS configure
+ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/config.h
+ BYPRODUCTS ${SOURCE_DIR}/ace/config.h
+ COMMAND ${CMAKE_COMMAND} -E copy config.h ${SOURCE_DIR}/ace/config.h
)
if (UNIX)
-ExternalProject_Add_Step( ${${PROJECT_NAME}_EXTERN} platform
- DEPENDEES patch
- DEPENDERS configure
- BYPRODUCTS ${${PROJECT_NAME}_SOURCE_DIR}/include/makeinclude/platform_macros.GNU
- COMMAND echo "INSTALL_PREFIX = ${${PROJECT_NAME}_INSTALL_DIR}" > ${${PROJECT_NAME}_SOURCE_DIR}/include/makeinclude/platform_macros.GNU
- COMMAND echo "CCFLAGS += ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_COMPILE_OPTIONS_PIC}" >> ${${PROJECT_NAME}_SOURCE_DIR}/include/makeinclude/platform_macros.GNU
- COMMAND echo "include ${${PROJECT_NAME}_SOURCE_DIR}/include/makeinclude/platform_${ACE_PLATFORM}.GNU" >> ${${PROJECT_NAME}_SOURCE_DIR}/include/makeinclude/platform_macros.GNU
+ExternalProject_Add_Step( ${EXTERN} platform
+ DEPENDEES patch
+ DEPENDERS configure
+ BYPRODUCTS ${SOURCE_DIR}/include/makeinclude/platform_macros.GNU
+ COMMAND echo "INSTALL_PREFIX = ${INSTALL_DIR}" > ${SOURCE_DIR}/include/makeinclude/platform_macros.GNU
+ COMMAND echo "CC = ${CMAKE_C_COMPILER}" >> ${SOURCE_DIR}/include/makeinclude/platform_macros.GNU
+ COMMAND echo "CXX = ${CMAKE_CXX_COMPILER}" >> ${SOURCE_DIR}/include/makeinclude/platform_macros.GNU
+ COMMAND echo "CCFLAGS += ${CMAKE_CXX_FLAGS} ${CMAKE_CXX_COMPILE_OPTIONS_PIC}" >> ${SOURCE_DIR}/include/makeinclude/platform_macros.GNU
+ COMMAND echo "include ${SOURCE_DIR}/include/makeinclude/platform_${ACE_PLATFORM}.GNU" >> ${SOURCE_DIR}/include/makeinclude/platform_macros.GNU
)
endif()
-add_library(${PROJECT_NAME} INTERFACE)
-target_include_directories(${PROJECT_NAME} SYSTEM INTERFACE
- $<BUILD_INTERFACE:${${PROJECT_NAME}_INSTALL_DIR}/include>
+find_package(Threads)
+
+add_library(ACE_ACE INTERFACE)
+target_include_directories(ACE_ACE SYSTEM INTERFACE
+ $<BUILD_INTERFACE:${INSTALL_DIR}/include>
)
-target_compile_definitions(${PROJECT_NAME} INTERFACE
+target_compile_definitions(ACE_ACE INTERFACE
-D__ACE_INLINE__
-DACE_AS_STATIC_LIBS
)
-target_link_libraries(${PROJECT_NAME} INTERFACE
- ${${PROJECT_NAME}_INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}ACE${CMAKE_STATIC_LIBRARY_SUFFIX}
+target_link_libraries(ACE_ACE INTERFACE
+ ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}ACE${CMAKE_STATIC_LIBRARY_SUFFIX}
+ Threads::Threads
)
if ("SunOS" STREQUAL ${CMAKE_SYSTEM_NAME})
- target_link_libraries(${PROJECT_NAME} INTERFACE
+ target_link_libraries(ACE_ACE INTERFACE
rt
- pthread
m
socket
nsl
)
- target_compile_definitions( ${PROJECT_NAME} INTERFACE
+ target_compile_definitions(ACE_ACE INTERFACE
_POSIX_PTHREAD_SEMANTICS
)
elseif ("Linux" STREQUAL ${CMAKE_SYSTEM_NAME} )
- target_link_libraries(${PROJECT_NAME} INTERFACE
- pthread
+ target_link_libraries(ACE_ACE INTERFACE
dl
rt
)
@@ -181,10 +192,14 @@
elseif ("Windows" STREQUAL ${CMAKE_SYSTEM_NAME} )
endif()
-add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXTERN})
+add_dependencies(ACE_ACE ${EXTERN})
-add_library(ACE_SSL INTERFACE)
-target_link_libraries(ACE_SSL INTERFACE
- ${PROJECT_NAME}
- ${${PROJECT_NAME}_INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}ACE_SSL${CMAKE_STATIC_LIBRARY_SUFFIX}
+add_library(ACE_ACE_SSL INTERFACE)
+target_link_libraries(ACE_ACE_SSL INTERFACE
+ ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}ACE_SSL${CMAKE_STATIC_LIBRARY_SUFFIX}
+ ACE_ACE
+ OpenSSL::SSL
)
+
+add_library(ACE::ACE ALIAS ACE_ACE)
+add_library(ACE::ACE_SSL ALIAS ACE_ACE_SSL)
diff --git a/dependencies/CMakeLists.txt b/dependencies/CMakeLists.txt
index 9830e6b..a422e23 100644
--- a/dependencies/CMakeLists.txt
+++ b/dependencies/CMakeLists.txt
@@ -16,90 +16,21 @@
cmake_minimum_required( VERSION 3.10 )
project( dependencies LANGUAGES NONE )
-#TODO options?
-set( USE_C++ 11 CACHE STRING "Use C++ standard X (11).")
+find_package(Patch REQUIRED)
-set ( DEPENDENCIES
- libxml2
- openssl
- ACE
- boost
- sqlite
- doxygen
- gtest
- benchmark
-)
+add_subdirectory( libxml2 )
+add_subdirectory( openssl )
+add_subdirectory( ACE )
+add_subdirectory( boost )
+add_subdirectory( sqlite )
+add_subdirectory( doxygen )
+add_subdirectory( gtest )
+add_subdirectory( benchmark )
if (USE_RAT)
- list(APPEND DEPENDENCIES rat)
+ add_subdirectory( rat )
endif()
-include(CheckCCompilerFlag)
-include(CheckCXXCompilerFlag)
-
-set( CONFIGURE_FLAGS --prefix=<INSTALL_DIR> CC=${CMAKE_C_COMPILER} CXX=${CMAKE_CXX_COMPILER} )
-set( CONFIGURE ./configure ${CONFIGURE_FLAGS} )
-
-find_program( PATCH NAMES gpatch patch )
-if ("PATCH-NOTFOUND" STREQUAL "${PATCH}")
- message( FATAL_ERROR "patch not found." )
-endif()
-
-# TODO windows why was windows finding bash?
-find_program( BASH bash )
-
if (WIN32)
- find_program( MSBUILD msbuild )
- # TODO FindPerl
- find_program( PERL perl )
-
- # Determin the Visual Studio version to generate projects for.
- if (MSVC10)
- set(MSVC_VERSION 10)
- elseif(MSVC11)
- set(MSVC_VERSION 11)
- elseif(MSVC12)
- set(MSVC_VERSION 12)
- elseif(MSVC14)
- set(MSVC_VERSION 14)
- endIF()
-
- list(APPEND DEPENDENCIES sqlite-netFx)
+ add_subdirectory( sqlite-netFx )
endif()
-
-# TODO autoconfig?
-set( CFLAGS_ARCH_32 -m32 )
-set( CFLAGS_ARCH_64 -m64 )
-
-# TODO check_c*_compiler_flag don't support linker flags
-#check_c_compiler_flag( ${CFLAGS_ARCH_${BUILD_BITS}} CFLAGS_ARCH_${BUILD_BITS}_ALLOWED )
-#if (${CFLAGS_ARCH_${BUILD_BITS}_ALLOWED})
- set( CFLAGS_ARCH ${CFLAGS_ARCH_${BUILD_BITS}} )
-#else()
-# message( FATAL_ERROR "${BUILD_BITS} bits flag ${CFLAGS_ARCH_${BUILD_BITS}} not supported.")
-#endif()
-
-set( CXXFLAGS_ARCH_32 -m32 )
-set( CXXFLAGS_ARCH_64 -m64 )
-
-#check_cxx_compiler_flag( ${CXXFLAGS_ARCH_${BUILD_BITS}} CXXFLAGS_ARCH_${BUILD_BITS}_ALLOWED )
-#if (${CXXFLAGS_ARCH_${BUILD_BITS}_ALLOWED})
- set( CXXFLAGS_ARCH ${CXXFLAGS_ARCH_${BUILD_BITS}} )
-#else()
-# message( FATAL_ERROR "${BUILD_BITS} bits flag ${CXXFLAGS_ARCH_${BUILD_BITS}} not supported.")
-#endif()
-
-set( CXXFLAGS_C++11 ${CMAKE_CXX11_STANDARD_COMPILE_OPTION} )
-if (NOT "" STREQUAL "${CXXFLAGS_C++${USE_C++}}" )
- set( CXXFLAGS_C++ ${CXXFLAGS_C++${USE_C++}} )
-endif()
-
-#TODO solaris needs special flags https://docs.oracle.com/cd/E37069_01/html/E37075/bkamq.html#scrolltoc
-set( CXXLDFLAGS_RUNTIME_C++11 -lstdc++ -lgcc_s -lCrunG3 -lc )
-set( CXXLDFLAGS_RUNTIME ${CXXFLAGS_C++${USE_C++}} )
-
-foreach(_D ${DEPENDENCIES})
- add_subdirectory( ${_D} )
-endforeach(_D)
-
-set(sqlite-netFx_SHARED_LIB ${sqlite-netFx_SHARED_LIB} PARENT_SCOPE)
diff --git a/dependencies/benchmark/CMakeLists.txt b/dependencies/benchmark/CMakeLists.txt
index 9cffcae..1a31a0c 100644
--- a/dependencies/benchmark/CMakeLists.txt
+++ b/dependencies/benchmark/CMakeLists.txt
@@ -4,78 +4,77 @@
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
-#
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-project( benchmark LANGUAGES NONE )
+project( benchmark VERSION 1.4.1 LANGUAGES NONE )
-set( ${PROJECT_NAME}_VERSION 1.4.1 )
-set( ${PROJECT_NAME}_SHA265 61ae07eb5d4a0b02753419eb17a82b7d322786bb36ab62bd3df331a4d47c00a7 )
-set( ${PROJECT_NAME}_URL "https://github.com/google/benchmark/archive/v${${PROJECT_NAME}_VERSION}.zip" )
-set( ${PROJECT_NAME}_EXTERN ${PROJECT_NAME}-extern )
-set( ${PROJECT_NAME}_DEPENDS gtest_gtest )
+set( SHA256 61ae07eb5d4a0b02753419eb17a82b7d322786bb36ab62bd3df331a4d47c00a7 )
+set( DEPENDS GTest::gtest )
-include(ExternalProject)
if(CMAKE_CXX_COMPILER_ID STREQUAL "SunPro")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64")
endif()
-ExternalProject_Add( ${${PROJECT_NAME}_EXTERN}
- URL ${${PROJECT_NAME}_URL}
- URL_HASH SHA256=${${PROJECT_NAME}_SHA265}
+set( EXTERN ${PROJECT_NAME}-extern )
+include(ExternalProject)
+ExternalProject_Add( ${EXTERN}
+ URL "https://github.com/google/benchmark/archive/v${PROJECT_VERSION}.zip"
+ URL_HASH SHA256=${SHA256}
UPDATE_COMMAND ""
CMAKE_ARGS
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
-DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD}
- -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
+ -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>/$<CONFIG>
-DCMAKE_BUILD_TYPE=$<CONFIG>
- -DGTEST_ROOT=$<TARGET_PROPERTY:GTest::GTest,INTERFACE_INCLUDE_DIRECTORIES>/..
+ -DGTEST_ROOT=$<TARGET_PROPERTY:GTest::gtest,INTERFACE_INCLUDE_DIRECTORIES>/..
-DBENCHMARK_ENABLE_TESTING=OFF
- DEPENDS ${${PROJECT_NAME}_DEPENDS}
+ DEPENDS ${DEPENDS}
)
-ExternalProject_Get_Property( ${${PROJECT_NAME}_EXTERN} SOURCE_DIR )
-ExternalProject_Get_Property( ${${PROJECT_NAME}_EXTERN} INSTALL_DIR )
+ExternalProject_Get_Property( ${EXTERN} SOURCE_DIR )
+ExternalProject_Get_Property( ${EXTERN} INSTALL_DIR )
+set(INSTALL_DIR "${INSTALL_DIR}/$<CONFIG>")
if (CMAKE_CXX_COMPILER_ID STREQUAL "SunPro")
set(PATCH_FILE ${CMAKE_CURRENT_SOURCE_DIR}/patches)
- ExternalProject_Add_Step(${${PROJECT_NAME}_EXTERN} patches
+ ExternalProject_Add_Step(${EXTERN} patches
ALWAYS 0
DEPENDEES download
DEPENDERS patch
DEPENDS ${PATCH_FILE}
BYPRODUCTS ${SOURCE_DIR}/CMakeLists.txt
WORKING_DIRECTORY ${SOURCE_DIR}
- COMMAND ${PATCH} -u -N -p1 < ${PATCH_FILE}
+ COMMAND ${Patch_EXECUTABLE} -u -N -p1 < ${PATCH_FILE}
)
endif()
find_package(Threads REQUIRED)
-add_library(${PROJECT_NAME} INTERFACE)
-target_include_directories(${PROJECT_NAME} SYSTEM INTERFACE
+add_library(benchmark_benchmark INTERFACE)
+target_include_directories(benchmark_benchmark SYSTEM INTERFACE
$<BUILD_INTERFACE:${INSTALL_DIR}/include>
)
-target_link_libraries(${PROJECT_NAME} INTERFACE
+target_link_libraries(benchmark_benchmark INTERFACE
${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}benchmark${CMAKE_STATIC_LIBRARY_SUFFIX}
Threads::Threads
)
if (WIN32)
-target_link_libraries(${PROJECT_NAME} INTERFACE
+target_link_libraries(benchmark_benchmark INTERFACE
Shlwapi
)
elseif (CMAKE_CXX_COMPILER_ID STREQUAL "SunPro")
- target_link_libraries(${PROJECT_NAME} INTERFACE
+ target_link_libraries(benchmark_benchmark INTERFACE
kstat
)
endif()
-add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXTERN})
+add_dependencies(benchmark_benchmark ${EXTERN})
-add_library(benchmark::benchmark ALIAS ${PROJECT_NAME})
+add_library(benchmark::benchmark ALIAS benchmark_benchmark)
diff --git a/dependencies/boost/CMakeLists.txt b/dependencies/boost/CMakeLists.txt
index 392998a..a8aa05a 100644
--- a/dependencies/boost/CMakeLists.txt
+++ b/dependencies/boost/CMakeLists.txt
@@ -13,22 +13,13 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-project( boost LANGUAGES NONE )
+project( boost VERSION 1.68.0 LANGUAGES NONE )
-set( ${PROJECT_NAME}_VERSION 1.68.0 )
-set( ${PROJECT_NAME}_SHA265 da3411ea45622579d419bfda66f45cd0f8c32a181d84adfa936f5688388995cf )
-string(REPLACE "." "_" _VERSION_UNDERSCORE ${${PROJECT_NAME}_VERSION})
-set( ${PROJECT_NAME}_URL "https://dl.bintray.com/boostorg/release/${${PROJECT_NAME}_VERSION}/source/boost_${_VERSION_UNDERSCORE}.tar.gz" )
-set( ${PROJECT_NAME}_EXTERN ${PROJECT_NAME}-extern )
-
-include(ProcessorCount)
-ProcessorCount(_NPROCS)
-
-include(ExternalProject)
+set( SHA256 da3411ea45622579d419bfda66f45cd0f8c32a181d84adfa936f5688388995cf )
set(_B2_FLAGS
-d0
- --prefix=<INSTALL_DIR>
+ --prefix=<INSTALL_DIR>/$<CONFIG>
--with-system
--with-log
--layout=system
@@ -38,6 +29,8 @@
variant=$<LOWER_CASE:$<CONFIG>>
)
+include(ProcessorCount)
+ProcessorCount(_NPROCS)
if (${_NPROCS})
set ( _B2_FLAGS ${_B2_FLAGS} -j${_NPROCS} )
endif()
@@ -61,9 +54,13 @@
set ( _BOOTSTRAP_COMMAND ${_BOOTSTRAP_COMMAND} --with-toolset=clang )
endif()
-ExternalProject_Add( ${${PROJECT_NAME}_EXTERN}
- URL ${${PROJECT_NAME}_URL}
- URL_HASH SHA256=${${PROJECT_NAME}_SHA265}
+string(REPLACE "." "_" _VERSION_UNDERSCORE ${PROJECT_VERSION})
+set( EXTERN ${PROJECT_NAME}-extern )
+
+include(ExternalProject)
+ExternalProject_Add( ${EXTERN}
+ URL "https://dl.bintray.com/boostorg/release/${PROJECT_VERSION}/source/boost_${_VERSION_UNDERSCORE}.tar.gz"
+ URL_HASH SHA256=${SHA256}
UPDATE_COMMAND ""
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND ${_BOOTSTRAP_COMMAND}
@@ -75,22 +72,20 @@
STAMP_DIR ./stamp
)
-ExternalProject_Get_Property( ${${PROJECT_NAME}_EXTERN} SOURCE_DIR )
-set( ${PROJECT_NAME}_SOURCE_DIR ${SOURCE_DIR} )
-ExternalProject_Get_Property( ${${PROJECT_NAME}_EXTERN} INSTALL_DIR )
-set( ${PROJECT_NAME}_INSTALL_DIR ${INSTALL_DIR} )
+ExternalProject_Get_Property( ${EXTERN} SOURCE_DIR )
+ExternalProject_Get_Property( ${EXTERN} INSTALL_DIR )
+set(INSTALL_DIR "${INSTALL_DIR}/$<CONFIG>")
if (NOT WIN32)
# https://github.com/boostorg/process/issues/51
set( PATCH_FILE ${CMAKE_CURRENT_SOURCE_DIR}/patches)
- ExternalProject_Add_Step( ${${PROJECT_NAME}_EXTERN} patches
+ ExternalProject_Add_Step( ${EXTERN} patches
ALWAYS 0
DEPENDEES download
DEPENDERS patch
DEPENDS ${PATCH_FILE}
- BYPRODUCTS ${${PROJECT_NAME}_SOURCE_DIR}/boost/process/detail/posix/is_running.hpp
- WORKING_DIRECTORY ${${PROJECT_NAME}_INSTALL_DIR}
- COMMAND ${PATCH} -u -N -p1 < ${PATCH_FILE}
+ BYPRODUCTS ${SOURCE_DIR}/boost/process/detail/posix/is_running.hpp
+ COMMAND ${Patch_EXECUTABLE} -u -N -p1 < ${PATCH_FILE}
)
endif()
@@ -108,7 +103,7 @@
set(linkLibraries)
foreach(library ${args_LIBRARIES})
- list(APPEND linkLibraries "${${PROJECT_NAME}_INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}boost_${args_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}")
+ list(APPEND linkLibraries "${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}boost_${args_NAME}${CMAKE_STATIC_LIBRARY_SUFFIX}")
endforeach()
add_library(boost_${args_NAME} INTERFACE)
@@ -122,8 +117,7 @@
add_library(${PROJECT_NAME} INTERFACE)
target_include_directories(${PROJECT_NAME} SYSTEM INTERFACE
- $<BUILD_INTERFACE:${${PROJECT_NAME}_INSTALL_DIR}/include>
- $<BUILD_INTERFACE:${${PROJECT_NAME}_INSTALL_DIR}/src>
+ $<BUILD_INTERFACE:${INSTALL_DIR}/include>
)
target_compile_definitions(${PROJECT_NAME} INTERFACE
BOOST_ALL_NO_LIB
@@ -131,7 +125,7 @@
target_link_libraries(${PROJECT_NAME} INTERFACE
)
add_library(Boost::boost ALIAS boost)
-add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXTERN})
+add_dependencies(${PROJECT_NAME} ${EXTERN})
find_package(Threads REQUIRED)
diff --git a/dependencies/doxygen/CMakeLists.txt b/dependencies/doxygen/CMakeLists.txt
index 269973c..f9157f7 100644
--- a/dependencies/doxygen/CMakeLists.txt
+++ b/dependencies/doxygen/CMakeLists.txt
@@ -13,44 +13,8 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-project( doxygen LANGUAGES NONE )
+project( doxygen VERSION 1.8 LANGUAGES NONE )
# used to compile documents
-set( ${PROJECT_NAME}_VERSION 1.6 )
-set( ${PROJECT_NAME}_SHA265 cedf78f6d213226464784ecb999b54515c97eab8a2f9b82514292f837cf88b93 )
-set( ${PROJECT_NAME}_URL "http://ftp.stack.nl/pub/users/dimitri/doxygen-${${PROJECT_NAME}_VERSION}.src.tar.gz" )
-#TODO flex broken set( ${PROJECT_NAME}_DEPENDS flex )
-
# Not a runtime requirement, so look for existing installation.
-find_package(Doxygen ${${PROJECT_NAME}_VERSION} REQUIRED)
-if( ${DOXYGEN_FOUND} )
-
- get_filename_component( DEPENDENCIES_${PROJECT_NAME}_DIR ${DOXYGEN_EXECUTABLE} DIRECTORY )
- get_filename_component( DEPENDENCIES_${PROJECT_NAME}_DIR ${DEPENDENCIES_${PROJECT_NAME}_DIR} DIRECTORY )
- set( DEPENDENCIES_${PROJECT_NAME}_DIR ${DEPENDENCIES_${PROJECT_NAME}_DIR} PARENT_SCOPE )
- set( DEPENDENCIES_${PROJECT_NAME}_VERSION ${DOXYGEN_VERSION} PARENT_SCOPE )
-
-else()
- # let's build it!
- # TODO FLEX won't build on Solaris
- # add_subdirectory( ../flex ${CMAKE_CURRENT_BINARY_DIR}/../flex )
-
- include(ExternalProject)
-
- # CMake based project
- ExternalProject_Add( ${PROJECT_NAME}
- URL ${${PROJECT_NAME}_URL}
- URL_HASH SHA256=${${PROJECT_NAME}_SHA265}
- UPDATE_COMMAND ""
-# DEPENDS ${${PROJECT_NAME}_DEPENDS}
- )
-
- ExternalProject_Get_Property( ${PROJECT_NAME} SOURCE_DIR )
- set( ${PROJECT_NAME}_SOURCE_DIR ${SOURCE_DIR} )
- ExternalProject_Get_Property( ${PROJECT_NAME} INSTALL_DIR )
- set( ${PROJECT_NAME}_INSTALL_DIR ${INSTALL_DIR} )
-
- set( DEPENDENCIES_${PROJECT_NAME}_DIR ${${PROJECT_NAME}_INSTALL_DIR} PARENT_SCOPE)
- set( DEPENDENCIES_${PROJECT_NAME}_VERSION ${${PROJECT_NAME}_VERSION} PARENT_SCOPE)
-
-endif( )
+find_package(Doxygen ${PROJECT_VERSION} REQUIRED)
diff --git a/dependencies/gtest/CMakeLists.txt b/dependencies/gtest/CMakeLists.txt
index 298995e..1fc4e9f 100644
--- a/dependencies/gtest/CMakeLists.txt
+++ b/dependencies/gtest/CMakeLists.txt
@@ -13,22 +13,14 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-project( gtest LANGUAGES NONE )
+project( gtest VERSION 1.8.1 LANGUAGES NONE )
-set( ${PROJECT_NAME}_VERSION 1.8.0 )
-set( ${PROJECT_NAME}_SHA265 f3ed3b58511efd272eb074a3a6d6fb79d7c2e6a0e374323d1e6bcbcc1ef141bf )
-set( ${PROJECT_NAME}_URL "https://github.com/google/googletest/archive/release-${${PROJECT_NAME}_VERSION}.zip" )
-set( ${PROJECT_NAME}_EXTERN ${PROJECT_NAME}-extern )
+set( SHA256 927827c183d01734cc5cfef85e0ff3f5a92ffe6188e0d18e909c5efebf28a0c7 )
include(ExternalProject)
-
-if(CMAKE_CXX_COMPILER_ID STREQUAL "SunPro")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m64")
-endif()
-
-ExternalProject_Add( ${${PROJECT_NAME}_EXTERN}
- URL ${${PROJECT_NAME}_URL}
- URL_HASH SHA256=${${PROJECT_NAME}_SHA265}
+ExternalProject_Add( ${PROJECT_NAME}-extern
+ URL "https://github.com/google/googletest/archive/release-${PROJECT_VERSION}.zip"
+ URL_HASH SHA256=${SHA256}
CMAKE_ARGS
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
-DCMAKE_CXX_STANDARD=${CMAKE_CXX_STANDARD}
@@ -37,25 +29,40 @@
-Dgtest_force_shared_crt:BOOL=ON
)
-ExternalProject_Get_Property( ${${PROJECT_NAME}_EXTERN} INSTALL_DIR )
+ExternalProject_Get_Property( ${PROJECT_NAME}-extern INSTALL_DIR )
-add_library(${PROJECT_NAME}_gtest INTERFACE)
-target_include_directories(${PROJECT_NAME}_gtest SYSTEM INTERFACE
- $<BUILD_INTERFACE:${INSTALL_DIR}/include>
-)
-target_link_libraries(${PROJECT_NAME}_gtest INTERFACE
- ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX}
-)
-add_dependencies(${PROJECT_NAME}_gtest ${${PROJECT_NAME}_EXTERN})
+include(GNUInstallDirs)
-add_library(${PROJECT_NAME}_gtest_main INTERFACE)
-target_include_directories(${PROJECT_NAME}_gtest_main SYSTEM INTERFACE
- $<BUILD_INTERFACE:${INSTALL_DIR}/include>
-)
-target_link_libraries(${PROJECT_NAME}_gtest_main INTERFACE
- ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX}
-)
-add_dependencies(${PROJECT_NAME}_gtest_main ${${PROJECT_NAME}_EXTERN})
+function(ADD_GTEST_LIBRARY)
+ set(options)
+ set(oneValueArgs)
+ set(multiValueArgs DEPENDENCIES)
+ cmake_parse_arguments(PARSE_ARGV 1 args "${options}" "${oneValueArgs}" "${multiValueArgs}")
-add_library(GTest::GTest ALIAS ${PROJECT_NAME}_gtest)
-add_library(GTest::Main ALIAS ${PROJECT_NAME}_gtest_main)
+ set(args_NAME ${ARGV0})
+
+ set(target "GTest_${args_NAME}")
+
+ add_library(${target} INTERFACE)
+
+ target_include_directories(${target} SYSTEM INTERFACE
+ $<BUILD_INTERFACE:${INSTALL_DIR}/${CMAKE_INSTALL_INCLUDEDIR}>
+ )
+
+ target_link_libraries(${target} INTERFACE
+ ${INSTALL_DIR}/${CMAKE_INSTALL_LIBDIR}/${CMAKE_STATIC_LIBRARY_PREFIX}${args_NAME}$<$<CONFIG:Debug>:d>${CMAKE_STATIC_LIBRARY_SUFFIX}
+ ${args_DEPENDENCIES}
+ )
+
+ add_library(GTest::${args_NAME} ALIAS ${target})
+
+ add_dependencies(${target} ${PROJECT_NAME}-extern)
+
+endfunction()
+
+find_package(Threads REQUIRED)
+
+add_gtest_library(gtest DEPENDENCIES Threads::Threads)
+add_gtest_library(gtest_main DEPENDENCIES GTest::gtest)
+add_gtest_library(gmock DEPENDENCIES GTest::gtest)
+add_gtest_library(gmock_main DEPENDENCIES GTest::gmock)
diff --git a/dependencies/libxml2/CMakeLists.txt b/dependencies/libxml2/CMakeLists.txt
index b5e5156..0bc49f8 100644
--- a/dependencies/libxml2/CMakeLists.txt
+++ b/dependencies/libxml2/CMakeLists.txt
@@ -13,14 +13,11 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-project( libxml2 LANGUAGES NONE )
+project( libxml2 VERSION 2.9.7 LANGUAGES NONE )
-set( ${PROJECT_NAME}_VERSION 2.9.7 )
-set( ${PROJECT_NAME}_SHA265 f63c5e7d30362ed28b38bfa1ac6313f9a80230720b7fb6c80575eeab3ff5900c )
-set( ${PROJECT_NAME}_URL "http://xmlsoft.org/sources/libxml2-${${PROJECT_NAME}_VERSION}.tar.gz" )
-set( ${PROJECT_NAME}_EXTERN ${PROJECT_NAME}-extern )
+set( SHA256 f63c5e7d30362ed28b38bfa1ac6313f9a80230720b7fb6c80575eeab3ff5900c )
-set( ${PROJECT_NAME}_CFLAGS "${${PROJECT_NAME}_CFLAGS} ${CFLAGS_ARCH}" )
+set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m64" )
if (${WIN32})
set (_MAKE_FLAGS ${_MAKE_FLAGS} "CPP=cl.exe /MP /EP" "CC=cl.exe /MP" )
@@ -41,16 +38,27 @@
set ( _BUILD_COMMAND ${CMAKE_COMMAND} -E chdir win32 nmake -f Makefile.msvc all ${_MAKE_FLAGS} )
set ( _INSTALL_COMMAND ${CMAKE_COMMAND} -E chdir win32 nmake -f Makefile.msvc install ${_MAKE_FLAGS} )
else()
- set ( _CONFIGURE_COMMAND ${CONFIGURE} $<$<CONFIG:Debug>:--with-debug> --libdir=<INSTALL_DIR>/lib --with-pic --enable-static --without-iconv --without-python --without-lzma CFLAGS=${${PROJECT_NAME}_CFLAGS} "MAKE=$(MAKE)")
+ set ( _CONFIGURE_COMMAND ./configure
+ --prefix=<INSTALL_DIR>
+ $<$<CONFIG:Debug>:--with-debug>
+ --libdir=<INSTALL_DIR>/lib
+ --with-pic
+ --enable-static
+ --without-iconv
+ --without-python
+ --without-lzma
+ CC=${CMAKE_C_COMPILER}
+ CFLAGS=${CMAKE_C_FLAGS}
+ "MAKE=$(MAKE)")
set ( _BUILD_COMMAND $(MAKE) all )
set ( _INSTALL_COMMAND $(MAKE) install )
endif()
+set( EXTERN ${PROJECT_NAME}-extern )
include(ExternalProject)
-
-ExternalProject_Add( ${${PROJECT_NAME}_EXTERN}
- URL ${${PROJECT_NAME}_URL}
- URL_HASH SHA256=${${PROJECT_NAME}_SHA265}
+ExternalProject_Add( ${EXTERN}
+ URL "http://xmlsoft.org/sources/libxml2-${PROJECT_VERSION}.tar.gz"
+ URL_HASH SHA256=${SHA256}
UPDATE_COMMAND ""
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND "${_CONFIGURE_COMMAND}"
@@ -58,27 +66,26 @@
INSTALL_COMMAND "${_INSTALL_COMMAND}"
)
-ExternalProject_Get_Property( ${${PROJECT_NAME}_EXTERN} SOURCE_DIR )
-set( ${PROJECT_NAME}_SOURCE_DIR ${SOURCE_DIR} )
-ExternalProject_Get_Property( ${${PROJECT_NAME}_EXTERN} INSTALL_DIR )
-set( ${PROJECT_NAME}_INSTALL_DIR ${INSTALL_DIR} )
-set( DEPENDENCIES_${PROJECT_NAME}_DIR ${${PROJECT_NAME}_INSTALL_DIR} PARENT_SCOPE)
+ExternalProject_Get_Property( ${EXTERN} INSTALL_DIR )
+set( INSTALL_DIR ${INSTALL_DIR} )
if (${WIN32})
set(CMAKE_STATIC_LIBRARY_PREFIX lib)
set(CMAKE_STATIC_LIBRARY_SUFFIX _a$<$<CONFIG:Debug>:d>.lib)
endif()
-add_library(${PROJECT_NAME} INTERFACE)
-target_include_directories(${PROJECT_NAME} SYSTEM INTERFACE
- $<BUILD_INTERFACE:${${PROJECT_NAME}_INSTALL_DIR}/include/libxml2>
+add_library(LibXml2_LibXml2 INTERFACE)
+target_include_directories(LibXml2_LibXml2 SYSTEM INTERFACE
+ $<BUILD_INTERFACE:${INSTALL_DIR}/include/libxml2>
)
-target_link_libraries(${PROJECT_NAME} INTERFACE
- ${${PROJECT_NAME}_INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}xml2${CMAKE_STATIC_LIBRARY_SUFFIX}
+target_link_libraries(LibXml2_LibXml2 INTERFACE
+ ${INSTALL_DIR}/lib/${CMAKE_STATIC_LIBRARY_PREFIX}xml2${CMAKE_STATIC_LIBRARY_SUFFIX}
)
if (${UNIX})
- target_link_libraries(${PROJECT_NAME} INTERFACE
- z
+ target_link_libraries(LibXml2_LibXml2 INTERFACE
+ z
)
endif()
-add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXTERN})
+add_dependencies(LibXml2_LibXml2 ${EXTERN})
+
+add_library(LibXml2::LibXml2 ALIAS LibXml2_LibXml2)
diff --git a/dependencies/openssl/CMakeLists.txt b/dependencies/openssl/CMakeLists.txt
index f428c9e..9587e00 100644
--- a/dependencies/openssl/CMakeLists.txt
+++ b/dependencies/openssl/CMakeLists.txt
@@ -4,9 +4,9 @@
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
-#
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -15,12 +15,8 @@
project( openssl LANGUAGES NONE )
-set( ${PROJECT_NAME}_VERSION 1.1.1 )
-set( ${PROJECT_NAME}_SHA265 2836875a0f89c03d0fdf483941512613a50cfb421d6fd94b9f41d7279d586a3d )
-set( ${PROJECT_NAME}_URL "https://www.openssl.org/source/openssl-${${PROJECT_NAME}_VERSION}.tar.gz" )
-set( ${PROJECT_NAME}_EXTERN ${PROJECT_NAME}-extern )
-
-set ( ${PROJECT_NAME}_CFLAGS "${${PROJECT_NAME}_CFLAGS} ${CFLAGS_ARCH}" )
+set( VERSION 1.1.1a )
+set( SHA256 fc20130f8b7cbd2fb918b2f14e2f429e109c31ddd0fb38fc5d71d9ffed3f9f41 )
if ("SunOS" STREQUAL ${CMAKE_SYSTEM_NAME})
# No debug for Solaris without patching Configure
@@ -63,21 +59,23 @@
endif()
if (${WIN32})
+ find_package(Perl REQUIRED)
# Keeps separate release/debug objects in build script
- set ( _CONFIGURE_COMMAND ${PERL} Configure ${openssl_PLATFORM} --prefix=<INSTALL_DIR>/${_DEBUG_OR_RELEASE} --openssldir=<INSTALL_DIR>/${_DEBUG_OR_RELEASE} ${openssl_CONFIGURE_FLAGS} )
+ set ( _CONFIGURE_COMMAND ${PERL_EXECUTABLE} Configure ${openssl_PLATFORM} --prefix=<INSTALL_DIR>/$<CONFIG> --openssldir=<INSTALL_DIR>/$<CONFIG> ${openssl_CONFIGURE_FLAGS} )
set ( _BUILD_COMMAND nmake )
- set ( _INSTALL_COMMAND nmake install )
+ set ( _INSTALL_COMMAND nmake install_sw )
else()
# TODO Configure trips up without MAKE
- set ( _CONFIGURE_COMMAND MAKE=$(MAKE) ./Configure threads zlib shared --prefix=<INSTALL_DIR>/${_DEBUG_OR_RELEASE} ${openssl_CONFIGURE_FLAGS} ${openssl_PLATFORM} )
+ set ( _CONFIGURE_COMMAND MAKE=$(MAKE) ./Configure threads zlib shared --prefix=<INSTALL_DIR>/$<CONFIG> ${openssl_CONFIGURE_FLAGS} ${openssl_PLATFORM} )
set ( _BUILD_COMMAND $(MAKE) all )
set ( _INSTALL_COMMAND $(MAKE) install_sw )
endif()
+set( EXTERN ${PROJECT_NAME}-extern )
include(ExternalProject)
-ExternalProject_Add( ${${PROJECT_NAME}_EXTERN}
- URL ${${PROJECT_NAME}_URL}
- URL_HASH SHA256=${${PROJECT_NAME}_SHA265}
+ExternalProject_Add( ${EXTERN}
+ URL "https://www.openssl.org/source/openssl-${VERSION}.tar.gz"
+ URL_HASH SHA256=${SHA256}
UPDATE_COMMAND ""
BUILD_IN_SOURCE 1
CONFIGURE_COMMAND "${_CONFIGURE_COMMAND}"
@@ -86,39 +84,37 @@
# TODO TEST_COMMAND $(MAKE) test
)
-ExternalProject_Get_Property( ${${PROJECT_NAME}_EXTERN} SOURCE_DIR )
-set( ${PROJECT_NAME}_SOURCE_DIR ${SOURCE_DIR} )
-ExternalProject_Get_Property( ${${PROJECT_NAME}_EXTERN} INSTALL_DIR )
-set( ${PROJECT_NAME}_INSTALL_DIR ${INSTALL_DIR}/${_DEBUG_OR_RELEASE} )
-set( DEPENDENCIES_${PROJECT_NAME}_DIR ${${PROJECT_NAME}_INSTALL_DIR} PARENT_SCOPE)
+ExternalProject_Get_Property( ${EXTERN} INSTALL_DIR )
+set(INSTALL_DIR "${INSTALL_DIR}/$<CONFIG>")
if (${WIN32})
- set( CRYPTO_NAME libcrypto )
- set( SSL_NAME libssl )
+ set( CMAKE_SHARED_LIBRARY_PREFIX lib )
else()
- set( CRYPTO_NAME crypto )
- set( SSL_NAME ssl )
set( CMAKE_LINK_LIBRARY_SUFFIX ${CMAKE_SHARED_LIBRARY_SUFFIX})
endif()
-add_library(ssl INTERFACE)
-target_include_directories(ssl SYSTEM INTERFACE
- $<BUILD_INTERFACE:${${PROJECT_NAME}_INSTALL_DIR}/include>
+add_library(OpenSSL_SSL INTERFACE)
+target_include_directories(OpenSSL_SSL SYSTEM INTERFACE
+ $<BUILD_INTERFACE:${INSTALL_DIR}/include>
)
-target_link_libraries(ssl INTERFACE
- ${${PROJECT_NAME}_INSTALL_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}${SSL_NAME}${CMAKE_LINK_LIBRARY_SUFFIX}
+target_link_libraries(OpenSSL_SSL INTERFACE
+ ${INSTALL_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}ssl${CMAKE_LINK_LIBRARY_SUFFIX}
)
-add_dependencies(ssl ${${PROJECT_NAME}_EXTERN})
+add_dependencies(OpenSSL_SSL ${EXTERN})
-add_library(crypto INTERFACE)
-target_include_directories(crypto SYSTEM INTERFACE
- $<BUILD_INTERFACE:${${PROJECT_NAME}_INSTALL_DIR}/include>
+add_library(OpenSSL_Crypto INTERFACE)
+target_include_directories(OpenSSL_Crypto SYSTEM INTERFACE
+ $<BUILD_INTERFACE:${INSTALL_DIR}/include>
)
-target_link_libraries(crypto INTERFACE
- ${${PROJECT_NAME}_INSTALL_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}${CRYPTO_NAME}${CMAKE_LINK_LIBRARY_SUFFIX}
+target_link_libraries(OpenSSL_Crypto INTERFACE
+ ${INSTALL_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}crypto${CMAKE_LINK_LIBRARY_SUFFIX}
)
-add_dependencies(crypto ${${PROJECT_NAME}_EXTERN})
+add_dependencies(OpenSSL_Crypto ${EXTERN})
-set_target_properties(ssl crypto PROPERTIES INTERFACE_LIBRARY_DIR ${${PROJECT_NAME}_INSTALL_DIR}/lib)
-set_target_properties(ssl crypto PROPERTIES INTERFACE_RUNTIME_DIR ${${PROJECT_NAME}_INSTALL_DIR}/bin)
+set_target_properties(OpenSSL_SSL OpenSSL_Crypto PROPERTIES
+ INTERFACE_LIBRARY_DIR ${INSTALL_DIR}/lib
+ INTERFACE_RUNTIME_DIR ${INSTALL_DIR}/bin
+)
+add_library(OpenSSL::SSL ALIAS OpenSSL_SSL)
+add_library(OpenSSL::Crypto ALIAS OpenSSL_Crypto)
diff --git a/dependencies/rat/CMakeLists.txt b/dependencies/rat/CMakeLists.txt
index bfb8771..8615026 100644
--- a/dependencies/rat/CMakeLists.txt
+++ b/dependencies/rat/CMakeLists.txt
@@ -13,16 +13,13 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-project( rat LANGUAGES NONE )
+project( rat VERSION 0.12 LANGUAGES NONE )
# used to check licenses in source
-set( ARTIFACT_VERSION 0.12 )
-set( ARTIFACT_SHA265 cedf78f6d213226464784ecb999b54515c97eab8a2f9b82514292f837cf88b93 )
-set( ARTIFACT_NAME apache-rat-${ARTIFACT_VERSION} )
-set( ARTIFACT_FILE apache-rat-${ARTIFACT_VERSION}-bin.tar.gz )
+set( ARTIFACT_NAME apache-rat-${PROJECT_VERSION} )
+set( ARTIFACT_FILE apache-rat-${PROJECT_VERSION}-bin.tar.gz )
set( ARTIFACT_URL "https://www.apache.org/dyn/closer.cgi?action=download&filename=creadur/${ARTIFACT_NAME}/${ARTIFACT_FILE}" )
-
file( DOWNLOAD ${ARTIFACT_URL} ${CMAKE_CURRENT_BINARY_DIR}/${ARTIFACT_FILE} )
execute_process(
COMMAND ${CMAKE_COMMAND} -E tar xzf ${ARTIFACT_FILE}
diff --git a/dependencies/sqlite-netFx/CMakeLists.txt b/dependencies/sqlite-netFx/CMakeLists.txt
index d0cd244..4be8359 100644
--- a/dependencies/sqlite-netFx/CMakeLists.txt
+++ b/dependencies/sqlite-netFx/CMakeLists.txt
@@ -13,28 +13,24 @@
# See the License for the specific language governing permissions and
# limitations under the License.
-project( sqlite-netFx LANGUAGES NONE )
-set( ${PROJECT_NAME}_VERSION 1.0.102.0 )
-set( ${PROJECT_NAME}_SHA265 b980e8a151ddc685ed30652d39573381aef7b623478cba80b02d0795607638e1 )
-set( ${PROJECT_NAME}_URL "https://system.data.sqlite.org/blobs/${${PROJECT_NAME}_VERSION}/${PROJECT_NAME}451-binary-x64-2013-${${PROJECT_NAME}_VERSION}.zip" )
+project( sqlite-netFx VERSION 1.0.102.0 LANGUAGES NONE )
+
+set( SHA256 b980e8a151ddc685ed30652d39573381aef7b623478cba80b02d0795607638e1 )
include(ExternalProject)
-
ExternalProject_Add( ${PROJECT_NAME}
- URL ${${PROJECT_NAME}_URL}
- URL_HASH SHA256=${${PROJECT_NAME}_SHA265}
- # SOURCE_DIR ${PROJECT_NAME}-prefix
+ URL "https://system.data.sqlite.org/blobs/${PROJECT_VERSION}/${PROJECT_NAME}451-binary-x64-2013-${PROJECT_VERSION}.zip"
+ URL_HASH SHA256=${SHA256}
UPDATE_COMMAND ""
BUILD_COMMAND ""
CONFIGURE_COMMAND ""
INSTALL_COMMAND ${CMAKE_COMMAND} -E copy <SOURCE_DIR>/System.Data.SQLite.dll <INSTALL_DIR>
)
-
-ExternalProject_Get_Property( ${PROJECT_NAME} SOURCE_DIR )
-set( ${PROJECT_NAME}_SOURCE_DIR ${SOURCE_DIR} )
ExternalProject_Get_Property( ${PROJECT_NAME} INSTALL_DIR )
-set( ${PROJECT_NAME}_INSTALL_DIR ${INSTALL_DIR} )
-set( DEPENDENCIES_${PROJECT_NAME}_DIR ${${PROJECT_NAME}_INSTALL_DIR} PARENT_SCOPE)
-set( DEPENDENCIES_${PROJECT_NAME}_VERSION ${${PROJECT_NAME}_VERSION} PARENT_SCOPE)
-set( ${PROJECT_NAME}_SHARED_LIB ${${PROJECT_NAME}_INSTALL_DIR}/System.Data.SQLite.dll PARENT_SCOPE)
+add_library(SQLite_netFx INTERFACE)
+target_link_libraries(SQLite_netFx INTERFACE
+ ${INSTALL_DIR}/System.Data.SQLite.dll
+)
+add_dependencies(SQLite_netFx ${PROJECT_NAME})
+add_library(SQLite::netFx ALIAS SQLite_netFx)
diff --git a/dependencies/sqlite/CMakeLists.txt b/dependencies/sqlite/CMakeLists.txt
index 71dc4da..b26d176 100644
--- a/dependencies/sqlite/CMakeLists.txt
+++ b/dependencies/sqlite/CMakeLists.txt
@@ -4,60 +4,56 @@
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
-#
+#
# http://www.apache.org/licenses/LICENSE-2.0
-#
+#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
-project( sqlite LANGUAGES NONE )
+project( sqlite VERSION 3260000 LANGUAGES NONE )
-set( ${PROJECT_NAME}_VERSION 3140100 )
-set( ${PROJECT_NAME}_SHA265 bc7182476900017becb81565ecea7775d46ab747a97281aa610f4f45881c47a6 )
-set( ${PROJECT_NAME}_URL "https://www.sqlite.org/2016/sqlite-autoconf-${${PROJECT_NAME}_VERSION}.tar.gz" )
-set( ${PROJECT_NAME}_EXTERN ${PROJECT_NAME}-extern )
+set( SHA256 de5dcab133aa339a4cf9e97c40aa6062570086d6085d8f9ad7bc6ddf8a52096e )
-set ( ${PROJECT_NAME}_CFLAGS "${${PROJECT_NAME}_CFLAGS} ${CFLAGS_ARCH}" )
+set( EXTERN ${PROJECT_NAME}-extern )
include(ExternalProject)
-
-ExternalProject_Add( ${${PROJECT_NAME}_EXTERN}
- URL ${${PROJECT_NAME}_URL}
- URL_HASH SHA256=${${PROJECT_NAME}_SHA265}
- UPDATE_COMMAND ""
- CMAKE_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
+ExternalProject_Add( ${EXTERN}
+ URL "https://www.sqlite.org/2018/sqlite-amalgamation-${PROJECT_VERSION}.zip"
+ URL_HASH SHA256=${SHA256}
+ UPDATE_COMMAND ""
+ CMAKE_ARGS
+ -DCMAKE_BUILD_TYPE=$<CONFIG>
+ -DCMAKE_INSTALL_PREFIX=<INSTALL_DIR>
)
-ExternalProject_Get_Property( ${${PROJECT_NAME}_EXTERN} SOURCE_DIR )
-set( ${PROJECT_NAME}_SOURCE_DIR ${SOURCE_DIR} )
-ExternalProject_Get_Property( ${${PROJECT_NAME}_EXTERN} INSTALL_DIR )
-set( ${PROJECT_NAME}_INSTALL_DIR ${INSTALL_DIR} )
-set( DEPENDENCIES_${PROJECT_NAME}_DIR ${${PROJECT_NAME}_INSTALL_DIR} PARENT_SCOPE)
+ExternalProject_Get_Property( ${EXTERN} SOURCE_DIR )
+ExternalProject_Get_Property( ${EXTERN} INSTALL_DIR )
-ExternalProject_Add_Step( ${${PROJECT_NAME}_EXTERN} CMakeLists.txt
- DEPENDEES patch
- DEPENDERS configure
- DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt.in
- BYPRODUCTS ${${PROJECT_NAME}_SOURCE_DIR}/CMakeLists.txt
- COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt.in ${${PROJECT_NAME}_SOURCE_DIR}/CMakeLists.txt
+ExternalProject_Add_Step( ${EXTERN} CMakeLists.txt
+ DEPENDEES patch
+ DEPENDERS configure
+ DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt.in
+ BYPRODUCTS ${SOURCE_DIR}/CMakeLists.txt
+ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt.in ${SOURCE_DIR}/CMakeLists.txt
)
if (WIN32)
set(CMAKE_SHARED_LIBRARY_SUFFIX .lib)
endif()
-add_library(${PROJECT_NAME} INTERFACE)
-target_include_directories(${PROJECT_NAME} SYSTEM INTERFACE
- $<BUILD_INTERFACE:${${PROJECT_NAME}_INSTALL_DIR}/include>
+add_library(SQLite_sqlite3 INTERFACE)
+target_include_directories(SQLite_sqlite3 SYSTEM INTERFACE
+ $<BUILD_INTERFACE:${INSTALL_DIR}/include>
)
-target_link_libraries(${PROJECT_NAME} INTERFACE
- ${${PROJECT_NAME}_INSTALL_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}sqlite3$<$<CONFIG:Debug>:d>${CMAKE_SHARED_LIBRARY_SUFFIX}
+target_link_libraries(SQLite_sqlite3 INTERFACE
+ ${INSTALL_DIR}/lib/${CMAKE_SHARED_LIBRARY_PREFIX}sqlite3$<$<CONFIG:Debug>:d>${CMAKE_SHARED_LIBRARY_SUFFIX}
)
-add_dependencies(${PROJECT_NAME} ${${PROJECT_NAME}_EXTERN})
+add_dependencies(SQLite_sqlite3 ${EXTERN})
-set_target_properties(${PROJECT_NAME} PROPERTIES INTERFACE_LIBRARY_DIR ${${PROJECT_NAME}_INSTALL_DIR}/lib)
-set_target_properties(${PROJECT_NAME} PROPERTIES INTERFACE_RUNTIME_DIR ${${PROJECT_NAME}_INSTALL_DIR}/bin)
+set_target_properties(SQLite_sqlite3 PROPERTIES INTERFACE_LIBRARY_DIR ${INSTALL_DIR}/lib)
+set_target_properties(SQLite_sqlite3 PROPERTIES INTERFACE_RUNTIME_DIR ${INSTALL_DIR}/bin)
+add_library(SQLite::sqlite3 ALIAS SQLite_sqlite3)
diff --git a/dhimpl/CMakeLists.txt b/dhimpl/CMakeLists.txt
index a5fe395..d256d5d 100644
--- a/dhimpl/CMakeLists.txt
+++ b/dhimpl/CMakeLists.txt
@@ -28,12 +28,13 @@
target_include_directories(DHImpl
PUBLIC
- $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>)
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
+)
target_link_libraries(DHImpl
- PUBLIC
+ PUBLIC
apache-geode
- crypto
+ OpenSSL::Crypto
c++11
PRIVATE
_WarningsAsError
diff --git a/sqliteimpl/CMakeLists.txt b/sqliteimpl/CMakeLists.txt
index 4b6e622..976b113 100644
--- a/sqliteimpl/CMakeLists.txt
+++ b/sqliteimpl/CMakeLists.txt
@@ -41,7 +41,7 @@
target_link_libraries(SqLiteImpl
PUBLIC
apache-geode
- sqlite
+ SQLite::sqlite3
PRIVATE
_WarningsAsError
)
diff --git a/templates/security/CMakeLists.txt b/templates/security/CMakeLists.txt
index df57aa2..b20760e 100644
--- a/templates/security/CMakeLists.txt
+++ b/templates/security/CMakeLists.txt
@@ -25,7 +25,7 @@
)
set_target_properties(securityImpl PROPERTIES
- FOLDER cpp/test/integration
+ FOLDER cpp/test/integration
)
include(GenerateExportHeader)
@@ -33,12 +33,13 @@
target_include_directories(securityImpl
PUBLIC
- $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>)
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
+)
target_link_libraries(securityImpl
PUBLIC
apache-geode
- crypto
+ OpenSSL::Crypto
PRIVATE
_WarningsAsError
)
diff --git a/tests/cpp/fwklib/CMakeLists.txt b/tests/cpp/fwklib/CMakeLists.txt
index 68cddd3..8aeec6a 100644
--- a/tests/cpp/fwklib/CMakeLists.txt
+++ b/tests/cpp/fwklib/CMakeLists.txt
@@ -17,7 +17,7 @@
project(framework LANGUAGES CXX)
add_library(framework STATIC
- FwkBB.hpp
+ FwkBB.hpp
FwkBBClient.cpp
FwkBBClient.hpp
FwkBBServer.cpp
@@ -26,25 +26,25 @@
FwkExport.hpp
FwkLog.cpp
FwkLog.hpp
- FwkStrCvt.cpp
+ FwkStrCvt.cpp
FwkStrCvt.hpp
GsRandom.cpp
GsRandom.hpp
IpcHandler.cpp
IpcHandler.hpp
- Service.cpp
+ Service.cpp
Service.hpp
- TcpIpc.cpp
+ TcpIpc.cpp
TcpIpc.hpp
- TimeBomb.cpp
+ TimeBomb.cpp
TimeBomb.hpp
- UDPIpc.cpp
+ UDPIpc.cpp
UDPIpc.hpp
)
set_target_properties(framework PROPERTIES
- CXX_VISIBILITY_PRESET hidden
- VISIBILITY_INLINES_HIDDEN ON
+ CXX_VISIBILITY_PRESET hidden
+ VISIBILITY_INLINES_HIDDEN ON
)
target_compile_options(framework
@@ -58,16 +58,16 @@
# headers for this library are referenced relative to the parent
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/..>
PRIVATE
- $<TARGET_PROPERTY:apache-geode,SOURCE_DIR>/../src
+ $<TARGET_PROPERTY:apache-geode,SOURCE_DIR>/../src
)
target_link_libraries(framework
PUBLIC
apache-geode
PRIVATE
- ACE
- internal
- _WarningsAsError
+ ACE::ACE
+ internal
+ _WarningsAsError
)
add_clangformat(framework)
diff --git a/tests/cpp/security/CMakeLists.txt b/tests/cpp/security/CMakeLists.txt
index e82b470..ce1b499 100644
--- a/tests/cpp/security/CMakeLists.txt
+++ b/tests/cpp/security/CMakeLists.txt
@@ -27,7 +27,7 @@
PkcsAuthInit.cpp
PkcsAuthInit.hpp
PkcsCredentialGenerator.hpp
- typedefs.hpp
+ typedefs.hpp
XmlAuthzCredentialGenerator.hpp
)
@@ -36,20 +36,20 @@
target_include_directories(security
PUBLIC
- $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
PRIVATE
- $<TARGET_PROPERTY:apache-geode,SOURCE_DIR>/../src
+ $<TARGET_PROPERTY:apache-geode,SOURCE_DIR>/../src
)
target_link_libraries(security
PUBLIC
framework
testobject
- crypto
- ssl
+ OpenSSL::Crypto
+ OpenSSL::SSL
PRIVATE
- ACE
- _WarningsAsError
+ ACE::ACE
+ _WarningsAsError
)
add_clangformat(security)
diff --git a/tests/cpp/testobject/CMakeLists.txt b/tests/cpp/testobject/CMakeLists.txt
index eddd919..e3e84ab 100644
--- a/tests/cpp/testobject/CMakeLists.txt
+++ b/tests/cpp/testobject/CMakeLists.txt
@@ -16,7 +16,7 @@
cmake_minimum_required(VERSION 3.10)
project(testobject LANGUAGES CXX)
-add_library(testobject SHARED
+add_library(testobject SHARED
ArrayOfByte.hpp
BatchObject.cpp
BatchObject.hpp
@@ -73,7 +73,8 @@
target_include_directories(testobject
PUBLIC
- $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>)
+ $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
+)
target_compile_definitions(testobject
PRIVATE
@@ -89,12 +90,12 @@
)
target_link_libraries(testobject
- PUBLIC
+ PUBLIC
apache-geode
framework
PRIVATE
- ACE
- _WarningsAsError
+ ACE::ACE
+ _WarningsAsError
)
add_clangformat(testobject)