diff --git a/CMakeLists.txt b/CMakeLists.txt index ee31ba1..3312e2d 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -26,7 +26,7 @@ # THE SOFTWARE. # -cmake_minimum_required(VERSION 3.6) +cmake_minimum_required(VERSION 3.19) project(TileDB) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/Modules") @@ -34,8 +34,8 @@ list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake/Modules") # Update TileDB's own git submodules. This directory, not CMAKE_SOURCE_DIR, which # is the parent project when TileDB is added as a subdirectory execute_process(COMMAND git submodule update --recursive --init - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} - RESULT_VARIABLE submodule_update_exit_code) + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + RESULT_VARIABLE submodule_update_exit_code) if(NOT(submodule_update_exit_code EQUAL 0)) message(FATAL_ERROR "Failure to recursively update git submodules") endif() @@ -59,7 +59,7 @@ set(GCSSDK_ROOT_DIR "${TILEDB_DEPS_INSTALL_DIR}/gcssdk-install/${GCSSDK_VERSION} set(GCSSDK_URL "https://github.com/googleapis/google-cloud-cpp/archive/${GCSSDK_VERSION}.zip" CACHE STRING "URL to google-cloud-cpp github release") set(GCSSDK_URL_HASH "SHA256=37b840a14980d4b3bee55af039258f2c79132e5f5edfa13570899d201ffcf032" CACHE STRING "Hash of the google-cloud-cpp download, or empty to skip the check") -# Set the following to true downstream when TileDB is added as a subdirectory +# Set the following to true downstream when TileDB is added as a subdirectory set(TILEDB_DISABLE_TESTS False CACHE BOOL "Disable TileDB Testing") set(TILEDB_DISABLE_UNINSTALL False CACHE BOOL "Disable TileDB Uninstall") @@ -252,7 +252,7 @@ if(COMPRESSION_LEVEL_GZIP) endif() if(COMPRESSION_LEVEL_ZSTD) add_definitions(-DTILEDB_COMPRESSION_LEVEL_ZSTD=${COMPRESSION_LEVEL_ZSTD}) - message(STATUS + message(STATUS "Set Zstandard compression level to ${COMPRESSION_LEVEL_ZSTD}." ) endif() @@ -286,13 +286,13 @@ if(DOXYGEN_FOUND) add_custom_command( OUTPUT ${CMAKE_BINARY_DIR}/doxyfile.in COMMAND mkdir -p doxygen - COMMAND echo INPUT = ${CMAKE_SOURCE_DIR}/doc/mainpage.dox + COMMAND echo INPUT = ${CMAKE_SOURCE_DIR}/doc/mainpage.dox ${TILEDB_CORE_HEADERS} > ${CMAKE_BINARY_DIR}/doxyfile.in COMMAND echo FILE_PATTERNS = *.h >> ${CMAKE_BINARY_DIR}/doxyfile.in COMMENT "Preparing for Doxygen documentation" VERBATIM ) add_custom_target( - doc ${DOXYGEN_EXECUTABLE} ${CMAKE_SOURCE_DIR}/doc/Doxyfile.mk > + doc ${DOXYGEN_EXECUTABLE} ${CMAKE_SOURCE_DIR}/doc/Doxyfile.mk > ${CMAKE_BINARY_DIR}/Doxyfile.log 2>&1 COMMENT "Generating API documentation with Doxygen" VERBATIM DEPENDS ${CMAKE_BINARY_DIR}/doxyfile.in diff --git a/cmake/Modules/FindBLOSC.cmake b/cmake/Modules/FindBLOSC.cmake index e8998f7..e2580d5 100644 --- a/cmake/Modules/FindBLOSC.cmake +++ b/cmake/Modules/FindBLOSC.cmake @@ -29,11 +29,11 @@ # - BLOSC_LIBRARIES, the Blosc library path # - BLOSC_FOUND, whether Blosc has been found -# Find header files +# Find header files if(BLOSC_SEARCH_HEADER_PATHS) - find_path( - BLOSC_INCLUDE_DIR blosc.h - PATHS ${BLOSC_SEARCH_HEADER_PATHS} + find_path( + BLOSC_INCLUDE_DIR blosc.h + PATHS ${BLOSC_SEARCH_HEADER_PATHS} NO_DEFAULT_PATH ) else() diff --git a/cmake/Modules/FindGCSClient.cmake b/cmake/Modules/FindGCSClient.cmake index 79c593b..88cc622 100644 --- a/cmake/Modules/FindGCSClient.cmake +++ b/cmake/Modules/FindGCSClient.cmake @@ -133,7 +133,7 @@ elseif(NOT GCSSDK_FOUND) PREFIX ${GCSSDK_PREFIX} URL ${GCSSDK_URL} ${GCSSDK_URL_HASH_ARGS} - PATCH_COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/core/include/misc/tiledb_openssl_shim.h + PATCH_COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/core/include/misc/tiledb_openssl_shim.h ${GCSSDK_PREFIX}/src/gcssdk-build/google/cloud/storage && patch -p1 < ${CMAKE_CURRENT_SOURCE_DIR}/cmake/patches/gcssdk/gcs_ossl.patch && patch -p1 < ${CMAKE_CURRENT_SOURCE_DIR}/cmake/patches/gcssdk/gcc13.patch diff --git a/cmake/Modules/FindS3Client.cmake b/cmake/Modules/FindS3Client.cmake index 5e73db0..5f02c64 100644 --- a/cmake/Modules/FindS3Client.cmake +++ b/cmake/Modules/FindS3Client.cmake @@ -108,7 +108,7 @@ elseif(NOT AWSSDK_FOUND) URL_HASH SHA256=394723034b81cc7cd528401775bc7aca2b12c7471c92350c80a0e2fb9d2909fe CMAKE_ARGS ${AWSSDK_COMMON_CMAKE_ARGS} DEPENDS aws-c-common-build) - + ExternalProject_Add(aws-c-event-stream-build URL "https://github.com/awslabs/aws-c-event-stream/archive/v0.1.5.tar.gz" URL_HASH SHA256=f1b423a487b5d6dca118bfc0d0c6cc596dc476b282258a3228e73a8f730422d4 @@ -126,13 +126,13 @@ elseif(NOT AWSSDK_FOUND) PREFIX ${AWSSDK_PREFIX} URL ${AWSSDK_URL} ${AWSSDK_URL_HASH_ARGS} - PATCH_COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/core/include/misc/tiledb_openssl_shim.h + PATCH_COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/core/include/misc/tiledb_openssl_shim.h ${AWSSDK_PREFIX}/src/awssdk-build/aws-cpp-sdk-core/include/aws/core/utils/crypto/openssl && patch -p1 < ${CMAKE_CURRENT_SOURCE_DIR}/cmake/patches/awssdk/build.patch && patch -p1 < ${CMAKE_CURRENT_SOURCE_DIR}/cmake/patches/awssdk/cjson.patch && - patch -p1 < ${CMAKE_CURRENT_SOURCE_DIR}/cmake/patches/awssdk/eventstreamdecoder.patch && - patch -p1 < ${CMAKE_CURRENT_SOURCE_DIR}/cmake/patches/awssdk/aws_ossl.patch && - patch -p1 < ${CMAKE_CURRENT_SOURCE_DIR}/cmake/patches/awssdk/missing_includes.patch + patch -p1 < ${CMAKE_CURRENT_SOURCE_DIR}/cmake/patches/awssdk/eventstreamdecoder.patch && + patch -p1 < ${CMAKE_CURRENT_SOURCE_DIR}/cmake/patches/awssdk/aws_ossl.patch && + patch -p1 < ${CMAKE_CURRENT_SOURCE_DIR}/cmake/patches/awssdk/missing_includes.patch CMAKE_ARGS ${AWSSDK_COMMON_CMAKE_ARGS} -DENABLE_TESTING=OFF -DENABLE_UNITY_BUILD=ON @@ -141,7 +141,7 @@ elseif(NOT AWSSDK_FOUND) -DBUILD_ONLY=config\\$s3\\$transfer\\$identity-management\\$sts -DMINIMIZE_SIZE=ON -DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}) - + add_dependencies(awssdk-build aws-c-common-build) add_dependencies(awssdk-build aws-c-event-stream-build) @@ -162,7 +162,7 @@ elseif(NOT AWSSDK_FOUND) set(AWSSDK_LINK_LIBRARIES) file(MAKE_DIRECTORY ${AWSSDK_INCLUDE_DIR}) - + foreach(_AWSSDK_LIB ${_AWSSDK_LIBS}) # aws-c-common -> AWS-C-COMMON string(TOUPPER ${_AWSSDK_LIB} _AWSSDK_LIB_UPPER) diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt index 1312a88..711960d 100644 --- a/core/CMakeLists.txt +++ b/core/CMakeLists.txt @@ -27,9 +27,9 @@ # # Include core header directories -file(GLOB TILEDB_CORE_INCLUDE_DIRS "include/*" - "src/codec/external/lz4" - "src/codec/external/bitshuffle") +file(GLOB TILEDB_CORE_INCLUDE_DIRS "include/*" + "src/codec/external/lz4" + "src/codec/external/bitshuffle") include_directories(${TILEDB_CORE_INCLUDE_DIRS}) # Gather the core source files @@ -72,9 +72,9 @@ set_target_properties(tiledb_static tiledb_shared PROPERTIES OUTPUT_NAME "tiledb # See https://glandium.org/blog/?p=2764 for workaound for undefined weak symbols in MacOS if(APPLE) -set(TILEDB_LINK_OPTIONS "-Wl,-U,_EVP_MAC_CTX_free;-Wl,-U,_EVP_MAC_CTX_new;-Wl,-U,_EVP_MAC_fetch;;-Wl,-U,_EVP_MAC_final;-Wl,-U,_EVP_MAC_free;-Wl,-U,_EVP_MAC_init;-Wl,-U,_EVP_MAC_update;-Wl,-U,_EVP_MD_get_size;-Wl,-U,_OSSL_PARAM_construct_end;-Wl,-U,_OSSL_PARAM_construct_utf8_string") -target_link_options(tiledb_static PUBLIC ${TILEDB_LINK_OPTIONS}) -target_link_options(tiledb_shared PUBLIC ${TILEDB_LINK_OPTIONS}) + set(TILEDB_LINK_OPTIONS "-Wl,-U,_EVP_MAC_CTX_free;-Wl,-U,_EVP_MAC_CTX_new;-Wl,-U,_EVP_MAC_fetch;;-Wl,-U,_EVP_MAC_final;-Wl,-U,_EVP_MAC_free;-Wl,-U,_EVP_MAC_init;-Wl,-U,_EVP_MAC_update;-Wl,-U,_EVP_MD_get_size;-Wl,-U,_OSSL_PARAM_construct_end;-Wl,-U,_OSSL_PARAM_construct_utf8_string") + target_link_options(tiledb_static PUBLIC ${TILEDB_LINK_OPTIONS}) + target_link_options(tiledb_shared PUBLIC ${TILEDB_LINK_OPTIONS}) endif() # The SDKs' static libraries use libcurl and OpenSSL, so these follow them on the link line @@ -84,7 +84,7 @@ target_link_libraries(tiledb_shared ${TILEDB_LIB_DEPENDENCIES}) # Install libraries install( - TARGETS tiledb_static tiledb_shared + TARGETS tiledb_static tiledb_shared LIBRARY DESTINATION lib ARCHIVE DESTINATION lib ) diff --git a/core/include/c_api/tiledb_constants.h b/core/include/c_api/tiledb_constants.h index 4abab95..3eb21f9 100644 --- a/core/include/c_api/tiledb_constants.h +++ b/core/include/c_api/tiledb_constants.h @@ -39,7 +39,7 @@ #include /** Version. */ -#define TILEDB_VERSION "0.5.2" +#define TILEDB_VERSION "0.6.0" /**@{*/ /** Return code. */ diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 8249001..73acd19 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -46,7 +46,7 @@ include(SetCatch2Version) foreach(TILEDB_TEST_SOURCE ${TILEDB_TEST_SOURCES}) get_filename_component(FILENAME ${TILEDB_TEST_SOURCE} NAME) string(REGEX REPLACE ".cc$" "" TARGET ${FILENAME}) - + add_executable(${TARGET} EXCLUDE_FROM_ALL ${TILEDB_TEST_SOURCE}) target_link_libraries(${TARGET} tiledb_static ${TILEDB_LIB_DEPENDENCIES} Catch2::Catch2)