vectorscan/tools/hsbench/CMakeLists.txt
Matthew Barr b0a5bd8940 test for pthread_setaffinity_np
Only enable setting threads per core when available
2017-05-30 14:00:30 +10:00

53 lines
1.4 KiB
CMake

include (${CMAKE_MODULE_PATH}/sqlite3.cmake)
if (NOT SQLITE3_FOUND)
message(STATUS "sqlite3 not found, not building hsbench")
return()
endif()
if (NOT XCODE)
include_directories(SYSTEM ${SQLITE3_INCLUDE_DIRS})
else()
# cmake doesn't think Xcode supports isystem
set(EXTRA_CXX_FLAGS "${EXTRA_CXX_FLAGS} -isystem ${SQLITE3_INCLUDE_DIRS}")
endif()
# BSD has the _np funcs in a _np header
CHECK_INCLUDE_FILE(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_hyperscan.cpp
engine_hyperscan.h
heapstats.cpp
heapstats.h
huge.cpp
huge.h
main.cpp
thread_barrier.h
timer.h
)
add_executable(hsbench ${hsbench_SOURCES})
target_link_libraries(hsbench hs databaseutil expressionutil ${SQLITE3_LDFLAGS}
${CMAKE_THREAD_LIBS_INIT})