include(TestBigEndian) test_big_endian(HOST_BIGENDIAN) include(CheckTypeSize) check_type_size("unsigned int" SIZEOF_UNSIGNED_INT) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/binpac.h.in ${CMAKE_CURRENT_BINARY_DIR}/binpac.h) include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) set(binpac_headers ${CMAKE_CURRENT_BINARY_DIR}/binpac.h binpac_analyzer.h binpac_buffer.h binpac_bytestring.h binpac_exception.h binpac_regex.h) set(binpac_lib_SRCS binpac_buffer.cc binpac_bytestring.cc binpac_regex.cc ${binpac_headers}) if(ENABLE_SHARED) add_library(binpac_lib SHARED ${binpac_lib_SRCS}) target_compile_features(binpac_lib PRIVATE cxx_std_17) set_target_properties( binpac_lib PROPERTIES CXX_EXTENSIONS OFF SOVERSION ${BINPAC_SOVERSION} VERSION ${BINPAC_VERSION_MAJOR}.${BINPAC_VERSION_MINOR} MACOSX_RPATH true OUTPUT_NAME binpac) install(TARGETS binpac_lib DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() if(ENABLE_STATIC) add_library(binpac_static STATIC ${binpac_lib_SRCS}) target_compile_features(binpac_static PRIVATE cxx_std_17) set_target_properties(binpac_static PROPERTIES CXX_EXTENSIONS OFF OUTPUT_NAME binpac) install(TARGETS binpac_static DESTINATION ${CMAKE_INSTALL_LIBDIR}) endif() if(ZEEK_ROOT_DIR) # Installed in binpac subdir just for organization purposes. install(FILES ${binpac_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/binpac) else() install(FILES ${binpac_headers} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) endif() # This is set to assist superprojects that want to build BinPac from source and # rely on it as a target if(ENABLE_SHARED) set(BinPAC_LIBRARY binpac_lib CACHE STRING "BinPAC library" FORCE) else() set(BinPAC_LIBRARY binpac_static CACHE STRING "BinPAC library" FORCE) endif() set(BinPAC_INCLUDE_DIR ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} CACHE STRING "BinPAC header directories" FORCE)