summaryrefslogtreecommitdiff
path: root/compat/zlib/contrib/blast/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'compat/zlib/contrib/blast/CMakeLists.txt')
-rw-r--r--compat/zlib/contrib/blast/CMakeLists.txt166
1 files changed, 166 insertions, 0 deletions
diff --git a/compat/zlib/contrib/blast/CMakeLists.txt b/compat/zlib/contrib/blast/CMakeLists.txt
new file mode 100644
index 0000000..9b20fda
--- /dev/null
+++ b/compat/zlib/contrib/blast/CMakeLists.txt
@@ -0,0 +1,166 @@
+cmake_minimum_required(VERSION 3.12...3.31)
+
+project(
+ blast
+ VERSION 1.3.0
+ LANGUAGES C
+ DESCRIPTION "A library for creating zipfiles based in zlib"
+ HOMEPAGE_URL "https://www.zlib.net")
+
+option(ZLIB_BLAST_BUILD_SHARED "Enable building blast shared library" ON)
+option(ZLIB_BLAST_BUILD_STATIC "Enable building blast static library" ON)
+option(ZLIB_BLAST_BUILD_TESTING "Enable building tests for blast" ON)
+option(ZLIB_BLAST_INSTALL "Enable installation of blast" ON)
+
+include(GNUInstallDirs)
+include(CMakePackageConfigHelpers)
+
+if(WIN32 OR CYGWIN)
+ set(zlibblast_static_suffix "s")
+ set(CMAKE_DEBUG_POSTFIX "d")
+ set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
+endif(WIN32 OR CYGWIN)
+
+function(blast_findTestEnv testName)
+ set(testEnv "PATH=")
+
+ if(MSVC OR MINGW)
+ set(separator "\\\;")
+ else()
+ set(separator ":")
+ endif()
+
+ string(APPEND testEnv "$<TARGET_FILE_DIR:BLAST::BLAST>${separator}")
+ string(APPEND testEnv "$ENV{PATH}")
+
+ set_tests_properties(${testName} PROPERTIES ENVIRONMENT "${testEnv}")
+endfunction(blast_findTestEnv testName)
+
+if(ZLIB_BLAST_BUILD_SHARED)
+ add_library(zlib_blast_blast SHARED
+ blast.c
+ blast.h)
+
+ add_library(BLAST::BLAST ALIAS zlib_blast_blast)
+
+ if(NOT CYGWIN)
+ set_target_properties(zlib_blast_blast
+ PROPERTIES
+ SOVERSION ${blast_VERSION_MAJOR}
+ VERSION ${blast_VERSION})
+ endif(NOT CYGWIN)
+
+ set_target_properties(zlib_blast_blast
+ PROPERTIES
+ EXPORT_NAME BLAST
+ OUTPUT_NAME blast)
+
+ if(ZLIB_BLAST_BUILD_TESTING)
+ enable_testing()
+ add_executable(zlib_blast_blast-test blast-test.c)
+ target_link_libraries(zlib_blast_blast-test PRIVATE zlib_blast_blast)
+
+ add_test(NAME zlib_blast_blast-test
+ COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/tester.cmake
+ "$<TARGET_FILE:zlib_blast_blast-test>"
+ "${CMAKE_CURRENT_SOURCE_DIR}"
+ "${CMAKE_CURRENT_BINARY_DIR}")
+
+ if(MSVC
+ OR MSYS
+ OR MINGW
+ OR CYGWIN)
+ blast_findtestenv(zlib_blast_blast-test)
+ endif(
+ MSVC
+ OR MSYS
+ OR MINGW
+ OR CYGWIN)
+ endif(ZLIB_BLAST_BUILD_TESTING)
+endif(ZLIB_BLAST_BUILD_SHARED)
+
+if(ZLIB_BLAST_BUILD_STATIC)
+ add_library(zlib_blast_blastStatic STATIC
+ blast.c
+ blast.h)
+
+ add_library(BLAST::BLASTSTATIC ALIAS zlib_blast_blastStatic)
+
+ set_target_properties(zlib_blast_blastStatic
+ PROPERTIES
+ EXPORT_NAME BLASTSTATIC
+ OUTPUT_NAME blast${zlibblast_static_suffix})
+
+ if(ZLIB_BLAST_BUILD_TESTING)
+ enable_testing()
+ add_executable(zlib_blast_testStatic blast-test.c)
+ target_link_libraries(zlib_blast_testStatic
+ PRIVATE zlib_blast_blastStatic)
+
+ add_test(NAME zlib_blast_testStatic
+ COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/tester.cmake
+ "$<TARGET_FILE:zlib_blast_testStatic>"
+ "${CMAKE_CURRENT_SOURCE_DIR}"
+ "${CMAKE_CURRENT_BINARY_DIR}")
+ endif(ZLIB_BLAST_BUILD_TESTING)
+endif(ZLIB_BLAST_BUILD_STATIC)
+
+if(ZLIB_BLAST_BUILD_TESTING)
+ add_subdirectory(test)
+endif(ZLIB_BLAST_BUILD_TESTING)
+
+if(ZLIB_BLAST_INSTALL)
+ if(ZLIB_BLAST_BUILD_SHARED)
+ install(
+ TARGETS zlib_blast_blast
+ COMPONENT Runtime
+ EXPORT zlibBlastSharedExport
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}"
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
+ install(
+ EXPORT zlibBlastSharedExport
+ FILE blast-shared.cmake
+ NAMESPACE BLAST::
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/blast)
+
+ if(MSVC)
+ install(
+ FILES $<TARGET_PDB_FILE:zlib_blast_blast>
+ COMPONENT Development
+ DESTINATION ${CMAKE_INSTALL_BINDIR}
+ CONFIGURATIONS Debug OR RelWithDebInfo
+ OPTIONAL)
+ endif(MSVC)
+ endif(ZLIB_BLAST_BUILD_SHARED)
+
+ if(ZLIB_BLAST_BUILD_STATIC)
+ install(
+ TARGETS zlib_blast_blastStatic
+ COMPONENT Development
+ EXPORT zlibBlastStaticExport
+ ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}")
+ install(
+ EXPORT zlibBlastStaticExport
+ FILE blast-static.cmake
+ NAMESPACE BLAST::
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/blast)
+ endif(ZLIB_BLAST_BUILD_STATIC)
+
+ configure_package_config_file(
+ ${blast_SOURCE_DIR}/blastConfig.cmake.in
+ ${blast_BINARY_DIR}/blastConfig.cmake
+ INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/blast)
+
+ write_basic_package_version_file(
+ "${blast_BINARY_DIR}/blastConfigVersion.cmake"
+ VERSION "${blast_VERSION}"
+ COMPATIBILITY AnyNewerVersion)
+
+ install(FILES ${blast_BINARY_DIR}/blastConfig.cmake
+ ${blast_BINARY_DIR}/blastConfigVersion.cmake
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/blast)
+ install(
+ FILES blast.h
+ COMPONENT Development
+ DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
+endif(ZLIB_BLAST_INSTALL)