From 0170a45f40d688f3b39cfd49b1eb02d582759895 Mon Sep 17 00:00:00 2001 From: Claus Klein Date: Sun, 11 Mar 2018 14:24:21 +0100 Subject: [PATCH 1/4] gtest should be found if while testing add debug suffix to enable debug and release installation --- CMakeLists.txt | 100 +++++++++++++++++++++++++++++-------------------- 1 file changed, 59 insertions(+), 41 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 3f534b1..6091644 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -23,8 +23,17 @@ check_include_file("unistd.h" HAVE_UNISTD_H) check_include_file("windows.h" HAVE_WINDOWS_H) include(CheckLibraryExists) -check_library_exists(z zlibVersion "" HAVE_LIBZ) -check_library_exists(lzo2 lzo1x_1_15_compress "" HAVE_LIBLZO2) +if(UNIX) + link_directories(/opt/local/lib /usr/local/lib) + find_package(Zlib) + if(Zlib_FOUND) + set(HAVE_LIBZ ON) + endif(Zlib_FOUND) + check_library_exists(lzo2 lzo1x_1_15_compress "/opt/local/lib" HAVE_LIBLZO2) +else(UNIX) + check_library_exists(z zlibVersion "" HAVE_LIBZ) + check_library_exists(lzo2 lzo1x_1_15_compress "" HAVE_LIBLZO2) +endif(UNIX) include(CheckCXXSourceCompiles) check_cxx_source_compiles( @@ -37,15 +46,21 @@ include(CheckSymbolExists) check_symbol_exists("mmap" "sys/mman.h" HAVE_FUNC_MMAP) check_symbol_exists("sysconf" "unistd.h" HAVE_FUNC_SYSCONF) -find_package(GTest QUIET) -if(GTEST_FOUND) - set(HAVE_GTEST 1) -endif(GTEST_FOUND) -find_package(Gflags QUIET) -if(GFLAGS_FOUND) - set(HAVE_GFLAGS 1) -endif(GFLAGS_FOUND) +# set debug postfix a la boost +set(CMAKE_DEBUG_POSTFIX "-d") + +if(SNAPPY_BUILD_TESTS) + find_package(GTest) + if(GTEST_FOUND) + set(HAVE_GTEST 1) + endif(GTEST_FOUND) + + find_package(Gflags) + if(GFLAGS_FOUND) + set(HAVE_GFLAGS 1) + endif(GFLAGS_FOUND) +endif(SNAPPY_BUILD_TESTS) configure_file( "${PROJECT_SOURCE_DIR}/cmake/config.h.in" @@ -108,37 +123,40 @@ if(BUILD_SHARED_LIBS) set_target_properties(snappy PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) endif(BUILD_SHARED_LIBS) -if(SNAPPY_BUILD_TESTS) - enable_testing() - - add_executable(snappy_unittest "") - target_sources(snappy_unittest - PRIVATE - "${PROJECT_SOURCE_DIR}/snappy_unittest.cc" - "${PROJECT_SOURCE_DIR}/snappy-test.cc" - ) - target_compile_definitions(snappy_unittest PRIVATE -DHAVE_CONFIG_H) - target_link_libraries(snappy_unittest snappy ${GFLAGS_LIBRARIES}) - - if(HAVE_LIBZ) - target_link_libraries(snappy_unittest z) - endif(HAVE_LIBZ) - if(HAVE_LIBLZO2) - target_link_libraries(snappy_unittest lzo2) - endif(HAVE_LIBLZO2) - - target_include_directories(snappy_unittest - BEFORE PRIVATE - "${PROJECT_SOURCE_DIR}" - "${GTEST_INCLUDE_DIRS}" - "${GFLAGS_INCLUDE_DIRS}" - ) - - add_test( - NAME snappy_unittest - WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" - COMMAND "${PROJECT_BINARY_DIR}/snappy_unittest") -endif(SNAPPY_BUILD_TESTS) +if(GTEST_FOUND OR GFLAGS_FOUND) + if(SNAPPY_BUILD_TESTS) + enable_testing() + + add_executable(snappy_unittest "") + target_sources(snappy_unittest + PRIVATE + "${PROJECT_SOURCE_DIR}/snappy_unittest.cc" + "${PROJECT_SOURCE_DIR}/snappy-test.cc" + ) + target_compile_definitions(snappy_unittest PRIVATE -DHAVE_CONFIG_H) + target_link_libraries(snappy_unittest snappy ${GFLAGS_LIBRARIES} ${GTEST_LIBRARIES}) + + if(HAVE_LIBZ) + target_link_libraries(snappy_unittest z) + endif(HAVE_LIBZ) + if(HAVE_LIBLZO2) + target_link_libraries(snappy_unittest lzo2.a) + endif(HAVE_LIBLZO2) + + target_include_directories(snappy_unittest + BEFORE PRIVATE + "${PROJECT_SOURCE_DIR}" + "${GTEST_INCLUDE_DIRS}" + "${GFLAGS_INCLUDE_DIRS}" + ) + + add_test( + NAME snappy_unittest + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" + COMMAND "${PROJECT_BINARY_DIR}/snappy_unittest") + endif(SNAPPY_BUILD_TESTS) +endif(GTEST_FOUND OR GFLAGS_FOUND) + include(GNUInstallDirs) install(TARGETS snappy From b3ee613ad2e1f60c09127c0df5d7c5a7980e680e Mon Sep 17 00:00:00 2001 From: Claus Klein Date: Sun, 11 Mar 2018 15:07:08 +0100 Subject: [PATCH 2/4] CMakeLists.txt requires Gtest while testing use debug postfix like boost does --- CMakeLists.txt | 80 ++++++++++++++++++++++---------------------------- 1 file changed, 35 insertions(+), 45 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6091644..39d9b8c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,17 +50,6 @@ check_symbol_exists("sysconf" "unistd.h" HAVE_FUNC_SYSCONF) # set debug postfix a la boost set(CMAKE_DEBUG_POSTFIX "-d") -if(SNAPPY_BUILD_TESTS) - find_package(GTest) - if(GTEST_FOUND) - set(HAVE_GTEST 1) - endif(GTEST_FOUND) - - find_package(Gflags) - if(GFLAGS_FOUND) - set(HAVE_GFLAGS 1) - endif(GFLAGS_FOUND) -endif(SNAPPY_BUILD_TESTS) configure_file( "${PROJECT_SOURCE_DIR}/cmake/config.h.in" @@ -123,40 +112,41 @@ if(BUILD_SHARED_LIBS) set_target_properties(snappy PROPERTIES WINDOWS_EXPORT_ALL_SYMBOLS ON) endif(BUILD_SHARED_LIBS) -if(GTEST_FOUND OR GFLAGS_FOUND) - if(SNAPPY_BUILD_TESTS) - enable_testing() - - add_executable(snappy_unittest "") - target_sources(snappy_unittest - PRIVATE - "${PROJECT_SOURCE_DIR}/snappy_unittest.cc" - "${PROJECT_SOURCE_DIR}/snappy-test.cc" - ) - target_compile_definitions(snappy_unittest PRIVATE -DHAVE_CONFIG_H) - target_link_libraries(snappy_unittest snappy ${GFLAGS_LIBRARIES} ${GTEST_LIBRARIES}) - - if(HAVE_LIBZ) - target_link_libraries(snappy_unittest z) - endif(HAVE_LIBZ) - if(HAVE_LIBLZO2) - target_link_libraries(snappy_unittest lzo2.a) - endif(HAVE_LIBLZO2) - - target_include_directories(snappy_unittest - BEFORE PRIVATE - "${PROJECT_SOURCE_DIR}" - "${GTEST_INCLUDE_DIRS}" - "${GFLAGS_INCLUDE_DIRS}" - ) - - add_test( - NAME snappy_unittest - WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" - COMMAND "${PROJECT_BINARY_DIR}/snappy_unittest") - endif(SNAPPY_BUILD_TESTS) -endif(GTEST_FOUND OR GFLAGS_FOUND) - +if(SNAPPY_BUILD_TESTS) + find_package(GTest REQUIRED) + find_package(Gflags) + find_package(Threads) + + enable_testing() + + add_executable(snappy_unittest "") + target_sources(snappy_unittest + PRIVATE + "${PROJECT_SOURCE_DIR}/snappy_unittest.cc" + "${PROJECT_SOURCE_DIR}/snappy-test.cc" + ) + target_compile_definitions(snappy_unittest PRIVATE -DHAVE_CONFIG_H) + target_link_libraries(snappy_unittest snappy ${GFLAGS_LIBRARIES} ${GTEST_LIBRARIES} ${THREADS_LIBRARIES}) + + if(HAVE_LIBZ) + target_link_libraries(snappy_unittest z) + endif(HAVE_LIBZ) + if(HAVE_LIBLZO2) + target_link_libraries(snappy_unittest lzo2) + endif(HAVE_LIBLZO2) + + target_include_directories(snappy_unittest + BEFORE PRIVATE + "${PROJECT_SOURCE_DIR}" + "${GTEST_INCLUDE_DIRS}" + "${GFLAGS_INCLUDE_DIRS}" + ) + + add_test( + NAME snappy_unittest + WORKING_DIRECTORY "${PROJECT_SOURCE_DIR}" + COMMAND "${PROJECT_BINARY_DIR}/snappy_unittest") +endif(SNAPPY_BUILD_TESTS) include(GNUInstallDirs) install(TARGETS snappy From 45a51af64bc5e738dca37e9589f5f34a21a84518 Mon Sep 17 00:00:00 2001 From: Claus Klein Date: Sun, 11 Mar 2018 15:24:08 +0100 Subject: [PATCH 3/4] seems that testing is not so important? --- CMakeLists.txt | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 39d9b8c..9a72a91 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ project(Snappy VERSION 1.1.7 LANGUAGES C CXX) # it prominent in the GUI. option(BUILD_SHARED_LIBS "Build shared libraries(DLLs)." OFF) -option(SNAPPY_BUILD_TESTS "Build Snappy's own tests." ON) +option(SNAPPY_BUILD_TESTS "Build Snappy's own tests." OFF) include(TestBigEndian) test_big_endian(SNAPPY_IS_BIG_ENDIAN) @@ -115,7 +115,7 @@ endif(BUILD_SHARED_LIBS) if(SNAPPY_BUILD_TESTS) find_package(GTest REQUIRED) find_package(Gflags) - find_package(Threads) + ##TBD find_package(Threads) enable_testing() @@ -126,7 +126,8 @@ if(SNAPPY_BUILD_TESTS) "${PROJECT_SOURCE_DIR}/snappy-test.cc" ) target_compile_definitions(snappy_unittest PRIVATE -DHAVE_CONFIG_H) - target_link_libraries(snappy_unittest snappy ${GFLAGS_LIBRARIES} ${GTEST_LIBRARIES} ${THREADS_LIBRARIES}) + target_link_libraries(snappy_unittest snappy ${GFLAGS_LIBRARIES} ${GTEST_LIBRARIES}) + ##TBD target_link_libraries(snappy_unittest snappy ${THREADS_LIBRARIES}) if(HAVE_LIBZ) target_link_libraries(snappy_unittest z) From c8c5ec9c3f03d7215cb9d3a505394b420d4e2b15 Mon Sep 17 00:00:00 2001 From: Claus Klein Date: Sun, 11 Mar 2018 15:40:27 +0100 Subject: [PATCH 4/4] enable ctest again --- CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 9a72a91..36fdfbe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -5,7 +5,7 @@ project(Snappy VERSION 1.1.7 LANGUAGES C CXX) # it prominent in the GUI. option(BUILD_SHARED_LIBS "Build shared libraries(DLLs)." OFF) -option(SNAPPY_BUILD_TESTS "Build Snappy's own tests." OFF) +option(SNAPPY_BUILD_TESTS "Build Snappy's own tests." ON) include(TestBigEndian) test_big_endian(SNAPPY_IS_BIG_ENDIAN)