diff --git "a/lang/c++/CMakeLists.txt" "b/lang/c++/CMakeLists.txt" index 52d6ac8a..39d59cd8 100644 --- "a/lang/c++/CMakeLists.txt" +++ "b/lang/c++/CMakeLists.txt" @@ -51,6 +51,8 @@ list(GET AVRO_VERSION 2 AVRO_VERSION_PATCH) project (Avro-cpp) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}) +find_package(ZLIB REQUIRED) + if (WIN32 AND NOT CYGWIN AND NOT MSYS) add_definitions (/EHa) add_definitions ( @@ -64,7 +66,8 @@ if (WIN32 AND NOT CYGWIN AND NOT MSYS) endif() if (CMAKE_COMPILER_IS_GNUCXX) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pedantic -Werror") + # Remove " -Werror" because of warning from boost-math (will require C++ 14 soon) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -pedantic") if (AVRO_ADD_PROTECTOR_FLAGS) set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -fstack-protector-all -D_GLIBCXX_DEBUG") # Unset _GLIBCXX_DEBUG for avrogencpp.cc because using Boost Program Options @@ -131,12 +134,12 @@ set_target_properties (avrocpp PROPERTIES set_target_properties (avrocpp_s PROPERTIES VERSION ${AVRO_VERSION_MAJOR}.${AVRO_VERSION_MINOR}.${AVRO_VERSION_PATCH}) -target_link_libraries (avrocpp ${Boost_LIBRARIES} ${SNAPPY_LIBRARIES}) +target_link_libraries (avrocpp ${Boost_LIBRARIES} ${SNAPPY_LIBRARIES} ZLIB::ZLIB) target_include_directories(avrocpp PRIVATE ${SNAPPY_INCLUDE_DIR}) add_executable (precompile test/precompile.cc) -target_link_libraries (precompile avrocpp_s ${Boost_LIBRARIES} ${SNAPPY_LIBRARIES}) +target_link_libraries (precompile avrocpp_s ${Boost_LIBRARIES} ${SNAPPY_LIBRARIES} ZLIB::ZLIB) macro (gen file ns) add_custom_command (OUTPUT ${file}.hh @@ -166,37 +169,41 @@ gen (primitivetypes pt) gen (cpp_reserved_words cppres) add_executable (avrogencpp impl/avrogencpp.cc) -target_link_libraries (avrogencpp avrocpp_s ${Boost_LIBRARIES} ${SNAPPY_LIBRARIES}) +target_link_libraries (avrogencpp avrocpp_s ${Boost_LIBRARIES} ${SNAPPY_LIBRARIES} ZLIB::ZLIB) -enable_testing() +if(BUILD_TESTING) + enable_testing() +endif() macro (unittest name) - add_executable (${name} test/${name}.cc) - target_link_libraries (${name} avrocpp ${Boost_LIBRARIES} ${SNAPPY_LIBRARIES}) + add_executable (${name} test/${name}.cc impl/json/JsonIO.cc impl/json/JsonDom.cc) + target_link_libraries (${name} avrocpp ${Boost_LIBRARIES} ${SNAPPY_LIBRARIES} ZLIB::ZLIB) add_test (NAME ${name} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMAND ${CMAKE_CURRENT_BINARY_DIR}/${name}) endmacro (unittest) -unittest (buffertest) -unittest (unittest) -unittest (SchemaTests) -unittest (LargeSchemaTests) -unittest (CodecTests) -unittest (StreamTests) -unittest (SpecificTests) -unittest (DataFileTests) -unittest (JsonTests) -unittest (AvrogencppTests) -unittest (CompilerTests) -unittest (AvrogencppTestReservedWords) - -add_dependencies (AvrogencppTestReservedWords cpp_reserved_words_hh) - -add_dependencies (AvrogencppTests bigrecord_hh bigrecord_r_hh bigrecord2_hh - tweet_hh - union_array_union_hh union_map_union_hh union_conflict_hh - recursive_hh reuse_hh circulardep_hh tree1_hh tree2_hh crossref_hh - primitivetypes_hh empty_record_hh) +if(BUILD_TESTING) + unittest (buffertest) + unittest (unittest) + unittest (SchemaTests) + unittest (LargeSchemaTests) + unittest (CodecTests) + unittest (StreamTests) + unittest (SpecificTests) + unittest (DataFileTests) + unittest (JsonTests) + unittest (AvrogencppTests) + unittest (CompilerTests) + unittest (AvrogencppTestReservedWords) + + add_dependencies (AvrogencppTestReservedWords cpp_reserved_words_hh) + + add_dependencies (AvrogencppTests bigrecord_hh bigrecord_r_hh bigrecord2_hh + tweet_hh + union_array_union_hh union_map_union_hh union_conflict_hh + recursive_hh reuse_hh circulardep_hh tree1_hh tree2_hh crossref_hh + primitivetypes_hh empty_record_hh) +endif() include (InstallRequiredSystemLibraries) @@ -207,9 +214,9 @@ include (CPack) install (TARGETS avrocpp avrocpp_s LIBRARY DESTINATION lib ARCHIVE DESTINATION lib - RUNTIME DESTINATION lib) + RUNTIME DESTINATION bin) -install (TARGETS avrogencpp RUNTIME DESTINATION bin) +install (TARGETS avrogencpp RUNTIME DESTINATION tools/bin) install (DIRECTORY api/ DESTINATION include/avro FILES_MATCHING PATTERN *.hh)