include (${CMAKE_MODULE_PATH}/sqlite3.cmake) if (NOT SQLITE3_FOUND) message(STATUS "sqlite3 not found, not building hsbench") return() endif() include_directories(SYSTEM ${SQLITE3_INCLUDE_DIRS}) # BSD has the _np funcs in a _np header CHECK_INCLUDE_FILE_CXX(pthread_np.h HAVE_PTHREAD_NP_H) if (HAVE_PTHREAD_NP_H) set (PTHREAD_NP_INC pthread_np.h) else () set (PTHREAD_NP_INC pthread.h) endif () set (CMAKE_REQUIRED_FLAGS "${CMAKE_REQUIRED_FLAGS} -D_GNU_SOURCE") set (CMAKE_REQUIRED_LIBRARIES pthread) CHECK_CXX_SYMBOL_EXISTS(pthread_setaffinity_np ${PTHREAD_NP_INC} HAVE_DECL_PTHREAD_SETAFFINITY_NP) CHECK_FUNCTION_EXISTS(malloc_info HAVE_MALLOC_INFO) CHECK_FUNCTION_EXISTS(shmget HAVE_SHMGET) set(HAVE_SHMGET ${HAVE_SHMGET} CACHE BOOL "shmget()") # only set these after all tests are done set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_C_FLAGS}") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${EXTRA_CXX_FLAGS}") SET(hsbench_SOURCES common.h data_corpus.cpp data_corpus.h engine.cpp engine.h engine_hyperscan.cpp engine_hyperscan.h heapstats.cpp heapstats.h huge.cpp huge.h main.cpp sqldb.cpp sqldb.h sqldb_bind.h thread_barrier.h timer.h ) if (BUILD_CHIMERA) add_definitions(-DHS_HYBRID) SET(hsbench_SOURCES ${hsbench_SOURCES} engine_chimera.cpp engine_chimera.h engine_pcre.cpp engine_pcre.h ) add_executable(hsbench ${hsbench_SOURCES}) include_directories(${PCRE_INCLUDE_DIRS}) target_link_libraries(hsbench hs chimera ${PCRE_LDFLAGS} databaseutil expressionutil ${SQLITE3_LDFLAGS} ${CMAKE_THREAD_LIBS_INIT}) else() add_executable(hsbench ${hsbench_SOURCES}) target_link_libraries(hsbench hs databaseutil expressionutil ${SQLITE3_LDFLAGS} ${CMAKE_THREAD_LIBS_INIT}) endif()