diff options
Diffstat (limited to 'contrib/blast')
| -rw-r--r-- | contrib/blast/CMakeLists.txt | 166 | ||||
| -rw-r--r-- | contrib/blast/Makefile | 16 | ||||
| -rw-r--r-- | contrib/blast/blast-test.c | 42 | ||||
| -rw-r--r-- | contrib/blast/blast.c | 44 | ||||
| -rw-r--r-- | contrib/blast/blast.h | 1 | ||||
| -rw-r--r-- | contrib/blast/blastConfig.cmake.in | 18 | ||||
| -rw-r--r-- | contrib/blast/test/CMakeLists.txt | 193 | ||||
| -rw-r--r-- | contrib/blast/test/add_subdirectory_exclude_test.cmake.in | 27 | ||||
| -rw-r--r-- | contrib/blast/test/add_subdirectory_test.cmake.in | 25 | ||||
| -rw-r--r-- | contrib/blast/test/find_package_no_components_test.cmake.in | 24 | ||||
| -rw-r--r-- | contrib/blast/test/find_package_test.cmake.in | 24 | ||||
| -rw-r--r-- | contrib/blast/test/find_package_wrong_components_test.cmake.in | 24 | ||||
| -rw-r--r-- | contrib/blast/tester.cmake | 28 |
13 files changed, 583 insertions, 49 deletions
diff --git a/contrib/blast/CMakeLists.txt b/contrib/blast/CMakeLists.txt new file mode 100644 index 000000000000..9b20fdada849 --- /dev/null +++ b/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) diff --git a/contrib/blast/Makefile b/contrib/blast/Makefile index 9be80bafe050..f64848b36d0c 100644 --- a/contrib/blast/Makefile +++ b/contrib/blast/Makefile @@ -1,8 +1,14 @@ -blast: blast.c blast.h - cc -DTEST -o blast blast.c +all: test -test: blast - blast < test.pk | cmp - test.txt +libblast.so: blast.c blast.h + cc -o libblast.so -shared blast.c + +blast-test: libblast.so + cc -o blast-test.o -c blast-test.c + cc -o blast-test blast-test.o libblast.so + +test: blast-test + LD_LIBRARY_PATH=./ ./blast-test < test.pk | cmp - test.txt clean: - rm -f blast blast.o + rm -f libblast.so blast-test blast-test.o diff --git a/contrib/blast/blast-test.c b/contrib/blast/blast-test.c new file mode 100644 index 000000000000..471dfd6d82d9 --- /dev/null +++ b/contrib/blast/blast-test.c @@ -0,0 +1,42 @@ +#include "blast.h" /* prototype for blast() */ + +/* Example of how to use blast() */ +#include <stdio.h> +#include <stdlib.h> + +#define CHUNK 16384 + +local unsigned inf(void *how, unsigned char **buf) +{ + static unsigned char hold[CHUNK]; + + *buf = hold; + return fread(hold, 1, CHUNK, (FILE *)how); +} + +local int outf(void *how, unsigned char *buf, unsigned len) +{ + return fwrite(buf, 1, len, (FILE *)how) != len; +} + +/* Decompress a PKWare Compression Library stream from stdin to stdout */ +int main(void) +{ + int ret; + unsigned left; + + /* decompress to stdout */ + left = 0; + ret = blast(inf, stdin, outf, stdout, &left, NULL); + if (ret != 0) + fprintf(stderr, "blast error: %d\n", ret); + + /* count any leftover bytes */ + while (getchar() != EOF) + left++; + if (left) + fprintf(stderr, "blast warning: %u unused bytes of input\n", left); + + /* return blast() error code */ + return ret; +} diff --git a/contrib/blast/blast.c b/contrib/blast/blast.c index e6e659073c63..3f6963f89e35 100644 --- a/contrib/blast/blast.c +++ b/contrib/blast/blast.c @@ -33,7 +33,6 @@ #include <setjmp.h> /* for setjmp(), longjmp(), and jmp_buf */ #include "blast.h" /* prototype for blast() */ -#define local static /* for local function definitions */ #define MAXBITS 13 /* maximum code length */ #define MAXWIN 4096 /* maximum window size */ @@ -421,46 +420,3 @@ int blast(blast_in infun, void *inhow, blast_out outfun, void *outhow, err = 1; return err; } - -#ifdef TEST -/* Example of how to use blast() */ -#include <stdio.h> -#include <stdlib.h> - -#define CHUNK 16384 - -local unsigned inf(void *how, unsigned char **buf) -{ - static unsigned char hold[CHUNK]; - - *buf = hold; - return fread(hold, 1, CHUNK, (FILE *)how); -} - -local int outf(void *how, unsigned char *buf, unsigned len) -{ - return fwrite(buf, 1, len, (FILE *)how) != len; -} - -/* Decompress a PKWare Compression Library stream from stdin to stdout */ -int main(void) -{ - int ret; - unsigned left; - - /* decompress to stdout */ - left = 0; - ret = blast(inf, stdin, outf, stdout, &left, NULL); - if (ret != 0) - fprintf(stderr, "blast error: %d\n", ret); - - /* count any leftover bytes */ - while (getchar() != EOF) - left++; - if (left) - fprintf(stderr, "blast warning: %u unused bytes of input\n", left); - - /* return blast() error code */ - return ret; -} -#endif diff --git a/contrib/blast/blast.h b/contrib/blast/blast.h index ef8544c53b64..c5ef7ab5e667 100644 --- a/contrib/blast/blast.h +++ b/contrib/blast/blast.h @@ -21,6 +21,7 @@ Mark Adler madler@alumni.caltech.edu */ +#define local static /* for local function definitions */ /* * blast() decompresses the PKWare Data Compression Library (DCL) compressed diff --git a/contrib/blast/blastConfig.cmake.in b/contrib/blast/blastConfig.cmake.in new file mode 100644 index 000000000000..5909ac4f58ee --- /dev/null +++ b/contrib/blast/blastConfig.cmake.in @@ -0,0 +1,18 @@ +@PACKAGE_INIT@ + +set(_blast_supported_components "shared" "static") + +if(blast_FIND_COMPONENTS) + foreach(_comp ${blast_FIND_COMPONENTS}) + if(NOT _comp IN_LIST _blast_supported_components) + set(blast_FOUND False) + set(blast_NOT_FOUND_MESSAGE "Unsupported component: ${_comp}") + endif(NOT _comp IN_LIST _blast_supported_components) + + include("${CMAKE_CURRENT_LIST_DIR}/blast-${_comp}.cmake") + endforeach(_comp ${blast_FIND_COMPONENTS}) +else(blast_FIND_COMPONENTS) + foreach(_component_config IN LISTS _blast_supported_components) + include("${CMAKE_CURRENT_LIST_DIR}/blast-${_component_config}.cmake") + endforeach(_component_config IN LISTS _blast_supported_components) +endif(blast_FIND_COMPONENTS) diff --git a/contrib/blast/test/CMakeLists.txt b/contrib/blast/test/CMakeLists.txt new file mode 100644 index 000000000000..eb58681647b8 --- /dev/null +++ b/contrib/blast/test/CMakeLists.txt @@ -0,0 +1,193 @@ +# if we are built from with zlib, use this path's) +if(DEFINED ZLIB_BUILD_BLAST) + set(WORK_DIR ${zlib_BINARY_DIR}) + set(inst_setup zlib_install) +else(DEFINED ZLIB_BUILD_BLAST) + set(WORK_DIR ${blast_BINARY_DIR}) + set(inst_setup zlib_blast_install) + set(ZLIB_ARG "-DZLIB_DIR=${ZLIB_DIR}") + + add_test( + NAME zlib_blast_install + COMMAND ${CMAKE_COMMAND} --install ${blast_BINARY_DIR} --prefix + ${CMAKE_CURRENT_BINARY_DIR}/test_install --config $<CONFIG> + WORKING_DIRECTORY ${blast_BINARY_DIR}) + + set_tests_properties(zlib_blast_install + PROPERTIES + FIXTURES_SETUP zlib_blast_install) +endif(DEFINED ZLIB_BUILD_BLAST) + +file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test) +file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test) +file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test) + +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/find_package_test.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test/CMakeLists.txt @ONLY) + +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/add_subdirectory_test.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test/CMakeLists.txt @ONLY) + +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/add_subdirectory_exclude_test.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test/CMakeLists.txt + @ONLY) + +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/find_package_no_components_test.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/findpackage_no_components_test/CMakeLists.txt + @ONLY) + +configure_file( + ${CMAKE_CURRENT_SOURCE_DIR}/find_package_wrong_components_test.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/findpackage_wrong_components_test/CMakeLists.txt + @ONLY) + +# CMAKE_GENERATOR_PLATFORM doesn't work in the if +set(GENERATOR ${CMAKE_GENERATOR_PLATFORM}) + +if(GENERATOR) + set(PLATFORM "-A ${GENERATOR}") +endif(GENERATOR) + +# +# findpackage_test +# +add_test( + NAME zlib_blast_find_package_configure + COMMAND + ${CMAKE_COMMAND} ${PLATFORM} + -B${CMAKE_CURRENT_BINARY_DIR}/findpackage_test_build + -DCMAKE_BUILD_TYPE=$<CONFIG> + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} + -DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG} + --fresh + -G "${CMAKE_GENERATOR}" + -S${CMAKE_CURRENT_BINARY_DIR}/findpackage_test) + +add_test( + NAME zlib_blast_find_package_build + COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG> + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/findpackage_test_build) + +set_tests_properties( + zlib_blast_find_package_configure + PROPERTIES + FIXTURES_REQUIRED ${inst_setup} + FIXTURES_SETUP blast_fp_config) + +set_tests_properties(zlib_blast_find_package_build + PROPERTIES + FIXTURES_REQUIRED blast_fp_config) + +# +# add_subdirectory_test +# +add_test( + NAME zlib_blast_add_subdirectory_configure + COMMAND + ${CMAKE_COMMAND} ${PLATFORM} + -B${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test_build + -DCMAKE_BUILD_TYPE=$<CONFIG> + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} + -DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG} + --fresh + -G "${CMAKE_GENERATOR}" + -S${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test) + +add_test( + NAME zlib_blast_add_subdirectory_build + COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG> + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_test_build) + +set_tests_properties( + zlib_blast_add_subdirectory_configure + PROPERTIES + FIXTURES_REQUIRED ${inst_setup} + FIXTURES_SETUP blast_as_config) + +set_tests_properties(zlib_blast_add_subdirectory_build + PROPERTIES + FIXTURES_REQUIRED blast_as_config) + +# +# add_subdirectory_exclude_test +# +add_test( + NAME zlib_blast_add_subdirectory_exclude_configure + COMMAND + ${CMAKE_COMMAND} ${PLATFORM} + -B${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test_build + -DCMAKE_BUILD_TYPE=$<CONFIG> + -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} + -DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG} + --fresh + -G "${CMAKE_GENERATOR}" + -S${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test) + +add_test( + NAME zlib_blast_add_subdirectory_exclude_build + COMMAND ${CMAKE_COMMAND} --build . --config $<CONFIG> + WORKING_DIRECTORY + ${CMAKE_CURRENT_BINARY_DIR}/add_subdirectory_exclude_test_build) + +set_tests_properties(zlib_blast_add_subdirectory_exclude_configure + PROPERTIES + FIXTURES_REQUIRED ${inst_setup} + FIXTURES_SETUP blast_asx_config) + +set_tests_properties(zlib_blast_add_subdirectory_exclude_build + PROPERTIES + FIXTURES_REQUIRED blast_asx_config) + +# +# findpackage_no_components_test +# +add_test( + NAME zlib_blast_find_package_no_components_configure + COMMAND + ${CMAKE_COMMAND} ${PLATFORM} + -B${CMAKE_CURRENT_BINARY_DIR}/findpackage_no_components_test_build + -DCMAKE_BUILD_TYPE=$<CONFIG> -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} + -DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG} + --fresh + -G "${CMAKE_GENERATOR}" + -S${CMAKE_CURRENT_BINARY_DIR}/findpackage_no_components_test) + +set_tests_properties( + zlib_blast_find_package_no_components_configure + PROPERTIES + FIXTURES_REQUIRED ${inst_setup}) + +if(NOT ZLIB_BLAST_BUILD_SHARED OR NOT ZLIB_BLAST_BUILD_STATIC) + set_tests_properties(zlib_blast_find_package_no_components_configure + PROPERTIES + WILL_FAIL TRUE) +endif(NOT ZLIB_BLAST_BUILD_SHARED OR NOT ZLIB_BLAST_BUILD_STATIC) + +# +# findpackage_wrong_components_test +# +add_test( + NAME zlib_blast_find_package_wrong_components_configure + COMMAND + ${CMAKE_COMMAND} ${PLATFORM} + -B${CMAKE_CURRENT_BINARY_DIR}/findpackage_wrong_components_test_build + -DCMAKE_BUILD_TYPE=$<CONFIG> -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} + -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} + -DCMAKE_INSTALL_PREFIX=${WORK_DIR}/test/test_install ${ZLIB_ARG} + --fresh + -G "${CMAKE_GENERATOR}" + -S${CMAKE_CURRENT_BINARY_DIR}/findpackage_wrong_components_test) + +set_tests_properties(zlib_blast_find_package_wrong_components_configure + PROPERTIES + FIXTURES_REQUIRED ${inst_setup} + WILL_FAIL TRUE) + diff --git a/contrib/blast/test/add_subdirectory_exclude_test.cmake.in b/contrib/blast/test/add_subdirectory_exclude_test.cmake.in new file mode 100644 index 000000000000..9f503b496e2c --- /dev/null +++ b/contrib/blast/test/add_subdirectory_exclude_test.cmake.in @@ -0,0 +1,27 @@ +cmake_minimum_required(VERSION 3.12...3.31) + +project( + blast_find_package + LANGUAGES C + VERSION @blast_VERSION@) + +option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_BLAST_BUILD_SHARED@) +option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_BLAST_BUILD_STATIC@) +option(ZLIB_BLAST_BUILD_TESTING "" @ZLIB_BLAST_BUILD_TESTING@) + +add_subdirectory(@blast_SOURCE_DIR@ + ${CMAKE_CURRENT_BINARY_DIR}/blast + EXCLUDE_FROM_ALL) + +set(BLAST_SRCS + @blast_SOURCE_DIR@/blast-test.c) + +if(ZLIB_BLAST_BUILD_SHARED) + add_executable(test_example ${BLAST_SRCS}) + target_link_libraries(test_example BLAST::BLAST) +endif(ZLIB_BLAST_BUILD_SHARED) + +if(ZLIB_BLAST_BUILD_STATIC) + add_executable(test_example_static ${BLAST_SRCS}) + target_link_libraries(test_example_static BLAST::BLASTSTATIC) +endif(ZLIB_BLAST_BUILD_STATIC) diff --git a/contrib/blast/test/add_subdirectory_test.cmake.in b/contrib/blast/test/add_subdirectory_test.cmake.in new file mode 100644 index 000000000000..1268b7c9be80 --- /dev/null +++ b/contrib/blast/test/add_subdirectory_test.cmake.in @@ -0,0 +1,25 @@ +cmake_minimum_required(VERSION 3.12...3.31) + +project( + blast_find_package + LANGUAGES C + VERSION @blast_VERSION@) + +option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_BLAST_BUILD_SHARED@) +option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_BLAST_BUILD_STATIC@) +option(ZLIB_BLAST_BUILD_TESTING "" @ZLIB_BLAST_BUILD_TESTING@) + +add_subdirectory(@blast_SOURCE_DIR@ ${CMAKE_CURRENT_BINARY_DIR}/blast) + +set(BLAST_SRCS + @blast_SOURCE_DIR@/blast-test.c) + +if(ZLIB_BLAST_BUILD_SHARED) + add_executable(test_example ${BLAST_SRCS}) + target_link_libraries(test_example BLAST::BLAST) +endif(ZLIB_BLAST_BUILD_SHARED) + +if(ZLIB_BLAST_BUILD_STATIC) + add_executable(test_example_static ${BLAST_SRCS}) + target_link_libraries(test_example_static BLAST::BLASTSTATIC) +endif(ZLIB_BLAST_BUILD_STATIC) diff --git a/contrib/blast/test/find_package_no_components_test.cmake.in b/contrib/blast/test/find_package_no_components_test.cmake.in new file mode 100644 index 000000000000..69739d395a06 --- /dev/null +++ b/contrib/blast/test/find_package_no_components_test.cmake.in @@ -0,0 +1,24 @@ +cmake_minimum_required(VERSION 3.12...3.31) + +project( + blast_find_package + LANGUAGES C + VERSION @blast_VERSION@) + +option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_BLAST_BUILD_SHARED@) +option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_BLAST_BUILD_STATIC@) + +find_package(blast REQUIRED CONFIG) + +set(BLAST_SRCS + @blast_SOURCE_DIR@/blast-test.c) + +if(ZLIB_BLAST_BUILD_SHARED) + add_executable(test_example ${BLAST_SRCS}) + target_link_libraries(test_example BLAST::BLAST) +endif(ZLIB_BLAST_BUILD_SHARED) + +if(ZLIB_BLAST_BUILD_STATIC) + add_executable(test_example_static ${BLAST_SRCS}) + target_link_libraries(test_example_static BLAST::BLASTSTATIC) +endif(ZLIB_BLAST_BUILD_STATIC) diff --git a/contrib/blast/test/find_package_test.cmake.in b/contrib/blast/test/find_package_test.cmake.in new file mode 100644 index 000000000000..5568c3a0e8de --- /dev/null +++ b/contrib/blast/test/find_package_test.cmake.in @@ -0,0 +1,24 @@ +cmake_minimum_required(VERSION 3.12...3.31) + +project( + blast_find_package + LANGUAGES C + VERSION @blast_VERSION@) + +option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_BLAST_BUILD_SHARED@) +option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_BLAST_BUILD_STATIC@) + +set(BLAST_SRCS + @blast_SOURCE_DIR@/blast-test.c) + +if(ZLIB_BLAST_BUILD_SHARED) + find_package(blast REQUIRED COMPONENTS shared CONFIG) + add_executable(test_example ${BLAST_SRCS}) + target_link_libraries(test_example BLAST::BLAST) +endif(ZLIB_BLAST_BUILD_SHARED) + +if(ZLIB_BLAST_BUILD_STATIC) + find_package(blast REQUIRED COMPONENTS static CONFIG) + add_executable(test_example_static ${BLAST_SRCS}) + target_link_libraries(test_example_static BLAST::BLASTSTATIC) +endif(ZLIB_BLAST_BUILD_STATIC) diff --git a/contrib/blast/test/find_package_wrong_components_test.cmake.in b/contrib/blast/test/find_package_wrong_components_test.cmake.in new file mode 100644 index 000000000000..84744ca942cd --- /dev/null +++ b/contrib/blast/test/find_package_wrong_components_test.cmake.in @@ -0,0 +1,24 @@ +cmake_minimum_required(VERSION 3.12...3.31) + +project( + blast_find_package + LANGUAGES C + VERSION @blast_VERSION@) + +option(ZLIB_BLAST_BUILD_SHARED "" @ZLIB_BLAST_BUILD_SHARED@) +option(ZLIB_BLAST_BUILD_STATIC "" @ZLIB_BLAST_BUILD_STATIC@) + +find_package(blast REQUIRED COMPONENTS wrong CONFIG) + +set(BLAST_SRCS + @blast_SOURCE_DIR@/blast-test.c) + +if(ZLIB_BLAST_BUILD_SHARED) + add_executable(test_example ${BLAST_SRCS}) + target_link_libraries(test_example BLAST::BLAST) +endif(ZLIB_BLAST_BUILD_SHARED) + +if(ZLIB_BLAST_BUILD_STATIC) + add_executable(test_example_static ${BLAST_SRCS}) + target_link_libraries(test_example_static BLAST::BLASTSTATIC) +endif(ZLIB_BLAST_BUILD_STATIC) diff --git a/contrib/blast/tester.cmake b/contrib/blast/tester.cmake new file mode 100644 index 000000000000..14e69fca5086 --- /dev/null +++ b/contrib/blast/tester.cmake @@ -0,0 +1,28 @@ +cmake_minimum_required(VERSION 3.12...3.31) + +#CMAKE_ARGV0 = ${CMAKE_COMMAND} +#CMAKE_ARGV1 = -P +#CMAKE_ARGV2 = ${CMAKE_CURRENT_SOURCE_DIR}/tester.cmake +#CMAKE_ARGV3 = "$<TARGET_FILE:blast-test>" +#CMAKE_ARGV4 = "${CMAKE_CURRENT_SOURCE_DIR}" +#CMAKE_ARGV5 = "${CMAKE_CURRENT_BINARY_DIR}") + +execute_process(COMMAND ${CMAKE_ARGV3} + INPUT_FILE "${CMAKE_ARGV4}/test.pk" + OUTPUT_FILE "${CMAKE_ARGV5}/output.txt" + RESULT_VARIABLE RESULT) + +if(RESULT) + message(FATAL_ERROR "Command exitited with: ${RESULT}") +endif(RESULT) + +execute_process(COMMAND ${CMAKE_ARGV0} -E compare_files + "${CMAKE_ARGV4}/test.txt" + "${CMAKE_ARGV5}/output.txt" + RESULT_VARIABLE RESULT) + +file(REMOVE "${CMAKE_ARGV5}/output.txt") + +if(RESULT) + message(FATAL_ERROR "Files differ") +endif(RESULT) |
