libcruft-util/CMakeLists.txt

838 lines
19 KiB
CMake
Raw Normal View History

cmake_minimum_required(VERSION 3.7.0)
project(util-cruft LANGUAGES CXX C)
include (nc)
2017-01-17 19:20:30 +11:00
include(CheckFunctionExists)
include(CheckCXXCompilerFlag)
include (search_libs)
find_package (PythonInterp 3 REQUIRED)
find_package (RAGEL 6.9 REQUIRED)
find_package (fmt REQUIRED)
2017-01-17 19:20:30 +11:00
if (WIN32)
# Enable features for Windows Vista and higher
add_definitions("-D_WIN32_WINNT=0x0600")
endif ()
2017-01-17 19:20:30 +11:00
###############################################################################
include (TestBigEndian)
TEST_BIG_ENDIAN(ENDIANNESS)
if (ENDIANNESS)
add_definitions(-DWORDS_BIGENDIAN)
endif()
###############################################################################
RAGEL_TARGET(uri uri.cpp.rl ${CMAKE_CURRENT_BINARY_DIR}/uri.cpp COMPILE_FLAGS -G2)
RAGEL_TARGET(version version.cpp.rl ${CMAKE_CURRENT_BINARY_DIR}/version.cpp)
2018-01-01 15:47:41 +11:00
RAGEL_TARGET(parse8601 time/parse8601.cpp.rl ${CMAKE_CURRENT_BINARY_DIR}/time/parse8601.cpp)
2019-03-19 16:00:44 +11:00
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
2017-01-17 19:20:30 +11:00
###############################################################################
add_library(cruft)
2017-01-17 19:20:30 +11:00
target_link_libraries(cruft ${NC_CXX_STDCXXFS} fmt::fmt)
# Setup a directory to hold built sources we may need to export to clients.
set (PREFIX "cruft/util")
file (MAKE_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}/prefix/${PREFIX}")
target_include_directories(cruft PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/prefix/${PREFIX}")
target_include_directories(cruft PUBLIC "${CMAKE_CURRENT_BINARY_DIR}/prefix/")
target_include_directories(cruft INTERFACE "${CMAKE_CURRENT_BINARY_DIR}/prefix/")
# Preemptively define an identity panic macro so that TCL doens't fuck us over
# by renaming a commonly used symbol.
target_compile_definitions(cruft PUBLIC "-Dpanic=panic")
2017-01-17 19:20:30 +11:00
###############################################################################
search_libs (BACKTRACE_LIB backtrace execinfo)
search_libs (DBGHELP_LIB SymFromAddr dbghelp)
check_function_exists (RtlCaptureStackBackTrace HAVE_CAPTURESTACKBACKTRACE)
2017-01-17 19:20:30 +11:00
##-----------------------------------------------------------------------------
if (BACKTRACE_LIB_FOUND)
list (APPEND UTIL_FILES backtrace_execinfo.cpp)
elseif (HAVE_CAPTURESTACKBACKTRACE)
list (APPEND UTIL_FILES backtrace_stackwalk.cpp)
target_link_libraries(cruft dbghelp)
else ()
list (APPEND UTIL_FILES backtrace_null.cpp)
2017-01-17 19:20:30 +11:00
endif ()
2017-01-17 19:20:30 +11:00
###############################################################################
# Platform wrappers
if (LINUX)
list (APPEND UTIL_FILES exe_linux.cpp)
elseif (FREEBSD)
list (APPEND UTIL_FILES exe_freebsd.cpp)
elseif (WIN32)
list (APPEND UTIL_FILES exe_win32.cpp)
2017-01-17 19:20:30 +11:00
else ()
message (FATAL_ERROR "unhandled platform")
endif ()
###############################################################################
# platform wrappers
list (
APPEND UTIL_FILES
posix/dir.cpp
posix/dir.hpp
posix/except.cpp
posix/except.hpp
2017-01-17 19:20:30 +11:00
posix/fd.cpp
posix/fd.hpp
posix/ostream.cpp
posix/ostream.hpp
2019-04-26 12:11:25 +10:00
posix/util.cpp
posix/util.hpp
2017-01-17 19:20:30 +11:00
)
2017-01-23 21:48:44 +11:00
##-----------------------------------------------------------------------------
if (LINUX)
list (APPEND UTIL_FILES
thread/event_futex.cpp
thread/flag_futex.cpp
rand/system_linux.cpp
rand/system_linux.hpp
)
endif ()
##-----------------------------------------------------------------------------
if (NOT WIN32)
2017-01-17 19:20:30 +11:00
list (
APPEND UTIL_FILES
buffer/circular.cpp
buffer/circular.hpp
buffer/paged.cpp
buffer/paged.hpp
2017-01-17 19:20:30 +11:00
memory/system.cpp
memory/system.hpp
debug_posix.cpp
debug/crash_posix.cpp
2021-05-13 13:13:22 +10:00
debug/fpe_posix.cpp
debug/system_posix.cpp
2017-01-17 19:20:30 +11:00
io_posix.cpp
io_posix.hpp
library_posix.hpp
library_posix.cpp
2020-04-21 11:01:03 +10:00
paths_posix.cpp
2017-01-17 19:20:30 +11:00
posix/fwd.hpp
posix/interface.hpp
posix/interface.cpp
2017-01-17 19:20:30 +11:00
posix/map.cpp
posix/map.hpp
posix/socket.cpp
posix/socket.hpp
2017-01-17 19:20:30 +11:00
time_posix.cpp
)
endif ()
##-----------------------------------------------------------------------------
if (WIN32)
2017-01-17 19:20:30 +11:00
list (
APPEND UTIL_FILES
debug_win32.cpp
debug/crash_win32.cpp
2021-05-13 13:13:22 +10:00
debug/fpe_win32.cpp
debug/system_win32.cpp
2017-01-17 19:20:30 +11:00
exe_win32.cpp
io_win32.cpp
io_win32.hpp
library_win32.cpp
2018-03-14 15:22:45 +11:00
library_win32.hpp
2020-04-21 11:01:03 +10:00
paths_win32.cpp
rand/system_win32.cpp
rand/system_win32.hpp
2017-01-17 19:20:30 +11:00
time_win32.cpp
win32/windows.hpp
win32/except.cpp
win32/except.hpp
2019-01-04 17:11:41 +11:00
win32/file.cpp
win32/file.hpp
2017-01-17 19:20:30 +11:00
win32/handle.cpp
win32/handle.hpp
win32/registry.cpp
2018-03-14 15:22:45 +11:00
win32/registry.hpp
2017-01-17 19:20:30 +11:00
)
target_link_libraries (cruft ws2_32)
endif ()
###############################################################################
list (APPEND UTIL_FILES
thread/event.hpp
thread/flag.hpp
thread/primitive.hpp
thread/semaphore.hpp
)
if (LINUX)
list (APPEND UTIL_FILES
thread/event_futex.cpp
thread/event_futex.hpp
thread/semaphore_linux.hpp
thread/semaphore_linux.cpp
thread/flag_futex.cpp
thread/flag_futex.hpp
)
elseif (WIN32)
list (APPEND UTIL_FILES
thread/event_std.cpp
thread/event_std.hpp
thread/event_win32.cpp
thread/semaphore_win32.hpp
thread/semaphore_win32.cpp
thread/flag_std.cpp
thread/flag_std.hpp
)
else ()
message (FATAL_ERROR "Unsupported thread platform")
2017-01-17 19:20:30 +11:00
endif ()
if (host_cpu STREQUAL "x86_64")
list (APPEND UTIL_FILES
2019-02-02 16:37:46 +11:00
cpuid/x86.cpp
cpuid/x86.hpp
)
else ()
2019-02-02 16:40:37 +11:00
message (WARNING "Unknown architecture ${host_cpu}. Defaulting to null implementation")
list (APPEND UTIL_FILES
cpuid/none.cpp
cpuid/none.hpp
)
endif ()
if (WIN32)
list (APPEND UTIL_FILES sysinfo_win32.cpp)
else ()
list (APPEND UTIL_FILES sysinfo_posix.cpp)
endif ()
2017-01-17 19:20:30 +11:00
###############################################################################
# Common files
list (
APPEND UTIL_FILES
adapter.hpp
adapter.cpp
2018-11-14 10:21:51 +11:00
algo/search.hpp
algo/sort.cpp
algo/sort.hpp
2017-01-17 19:20:30 +11:00
alloc/fwd.hpp
alloc/affix.cpp
alloc/affix.hpp
alloc/aligned/direct.hpp
alloc/aligned/foreign.hpp
2017-01-17 19:20:30 +11:00
alloc/allocator.cpp
alloc/allocator.hpp
2021-01-11 14:39:19 +11:00
alloc/chunked.cpp
alloc/chunked.hpp
alloc/easy.hpp
alloc/fallback.cpp
alloc/fallback.hpp
alloc/linear.cpp
alloc/linear.hpp
alloc/malloc.cpp
alloc/malloc.hpp
alloc/null.cpp
alloc/null.hpp
alloc/stack.cpp
alloc/stack.hpp
alloc/std.hpp
alloc/traits.hpp
alloc/traits.hpp
2017-01-17 19:20:30 +11:00
annotation.hpp
array/darray.hpp
2020-03-16 14:14:16 +11:00
array/md.cpp
array/md.hpp
array/parray.cpp
array/parray.hpp
2020-03-16 14:14:16 +11:00
array/sarray.cpp
array/sarray.hpp
2019-01-31 13:45:40 +11:00
array/varray.hpp
2017-01-17 19:20:30 +11:00
ascii.hpp
backtrace.hpp
bezier.cpp
bezier1.cpp
bezier2.cpp
bezier3.cpp
bezier.hpp
bitwise.cpp
bitwise.hpp
buffer/simple.cpp
buffer/simple.hpp
buffer/traits.hpp
2017-01-17 19:20:30 +11:00
cast.hpp
cmdopt.cpp
cmdopt.hpp
colour.cpp
colour.hpp
2020-02-18 11:23:21 +11:00
concepts.hpp
2020-09-30 15:14:26 +10:00
concepts/clock.hpp
2020-01-16 11:58:52 +11:00
container.hpp
coord.hpp
2017-01-17 19:20:30 +11:00
coord/fwd.hpp
coord/base.hpp
coord/comparator.hpp
2017-01-17 19:20:30 +11:00
coord/init.hpp
coord/iostream.hpp
coord/ops.hpp
coord/store.hpp
coord/traits.hpp
2018-04-01 14:49:10 +10:00
cpp.cpp
cpp.hpp
cpuid.cpp
cpuid.hpp
debug/assert.cpp
debug/assert.hpp
debug/common.cpp
debug/common.hpp
debug/compiler.cpp
debug/compiler.hpp
debug/crash.hpp
debug/debugger.cpp
debug/debugger.hpp
2021-05-13 13:13:22 +10:00
debug/fpe.hpp
debug/fpe.cpp
debug/memory.cpp
debug/memory.hpp
debug/panic.cpp
debug/panic.hpp
debug/system.cpp
debug/system.hpp
debug/trace.cpp
debug/trace.hpp
debug/validate.cpp
debug/validate.hpp
debug/warn.cpp
debug/warn.hpp
encode/number.hpp
encode/base.cpp
encode/base.hpp
2017-01-17 19:20:30 +11:00
endian.cpp
endian.hpp
2018-12-03 15:29:21 +11:00
except.cpp
except.hpp
2017-01-17 19:20:30 +11:00
exe.hpp
expected.hpp
2017-01-17 19:20:30 +11:00
extent.cpp
extent.hpp
fixed.cpp
fixed.hpp
fixed_string.hpp
2017-01-17 19:20:30 +11:00
float.cpp
float.hpp
fourcc.cpp
fourcc.hpp
2018-04-27 16:32:58 +10:00
functor.hpp
2017-01-17 19:20:30 +11:00
geom/fwd.hpp
geom/aabb.cpp
geom/aabb.hpp
geom/cylinder.cpp
geom/cylinder.hpp
geom/ellipse.cpp
geom/ellipse.hpp
2018-03-13 22:37:40 +11:00
geom/frustum.cpp
geom/frustum.hpp
2017-01-17 19:20:30 +11:00
geom/iostream.cpp
geom/iostream.hpp
2018-04-20 15:04:54 +10:00
geom/line.hpp
geom/line.cpp
geom/ops.cpp
2017-01-17 19:20:30 +11:00
geom/ops.hpp
geom/plane.cpp
geom/plane.hpp
geom/ray.cpp
geom/ray.hpp
geom/rect.cpp
geom/rect.hpp
geom/region.cpp
geom/sample/fwd.hpp
geom/sample/edge.hpp
geom/sample/surface.hpp
geom/sample/volume.hpp
geom/sample/subregion.hpp
geom/segment.cpp
geom/segment.hpp
2017-01-17 19:20:30 +11:00
geom/sphere.cpp
geom/sphere.hpp
geom/traits.hpp
2017-01-17 19:20:30 +11:00
geom/tri.cpp
geom/tri.hpp
hash.hpp
hash/fwd.hpp
2020-08-17 14:31:16 +10:00
hash/adapter.hpp
2017-01-17 19:20:30 +11:00
hash/adler.cpp
hash/adler.hpp
hash/buzhash.hpp
2017-01-17 19:20:30 +11:00
hash/bsdsum.cpp
hash/bsdsum.hpp
hash/crc.cpp
hash/crc.hpp
hash/fasthash.cpp
hash/fasthash.hpp
hash/fletcher.cpp
hash/fletcher.hpp
hash/fnv1a.cpp
hash/fnv1a.hpp
2020-11-03 12:43:35 +11:00
hash/halfsipmix.cpp
hash/halfsipmix.hpp
2017-01-17 19:20:30 +11:00
hash/murmur/common.cpp
hash/murmur/common.hpp
hash/murmur.hpp
hash/murmur/murmur1.cpp
hash/murmur/murmur1.hpp
hash/murmur/murmur2.cpp
hash/murmur/murmur2.hpp
hash/murmur/murmur3.cpp
hash/murmur/murmur3.hpp
2018-01-19 11:31:12 +11:00
hash/siphash.cpp
hash/siphash.hpp
hash/table.cpp
hash/table.hpp
2017-01-17 19:20:30 +11:00
hash/wang.hpp
hash/xxhash.cpp
hash/xxhash.hpp
init.cpp
init.hpp
introspection/enum.cpp
introspection/enum.hpp
introspection/name.cpp
introspection/name.hpp
introspection/type.cpp
introspection/type.hpp
2017-01-17 19:20:30 +11:00
io.cpp
io.hpp
iterator/cast.hpp
iterator/constant.hpp
iterator/counting.hpp
iterator/dereference.hpp
iterator/discard.hpp
iterator/indices.hpp
iterator/infix.hpp
iterator/iota.hpp
iterator/numeric.hpp
iterator/placement_output.hpp
iterator/referencing.hpp
iterator/transform.hpp
2021-02-05 13:03:18 +11:00
iterator/tuple_picker.hpp
iterator/unequal.hpp
iterator/unordered_insert.hpp
iterator/zip.hpp
2018-03-20 15:01:23 +11:00
job/fwd.hpp
job/dispatch.hpp
job/queue.cpp
job/queue.hpp
2018-04-18 21:48:24 +10:00
kmeans.hpp
2017-01-17 19:20:30 +11:00
library.hpp
2019-09-10 14:43:08 +10:00
list/node.hpp
list/sort.hpp
2017-01-17 19:20:30 +11:00
log.hpp
2019-10-10 15:10:41 +11:00
log/fwd.hpp
log/level.cpp
log/level.hpp
2019-10-10 15:10:41 +11:00
log/log.cpp
log/log.hpp
log/packet.cpp
log/packet.hpp
log/scoped.cpp
log/scoped.hpp
log/sink/base.cpp
log/sink/base.hpp
log/sink/console.cpp
log/sink/console.hpp
log/sink/null.cpp
log/sink/null.hpp
log/sink/path.cpp
log/sink/path.hpp
map/multi_fixed.cpp
map/multi_fixed.hpp
2019-03-28 14:27:34 +11:00
map/fixed.cpp
map/fixed.hpp
2017-01-17 19:20:30 +11:00
maths.cpp
maths.hpp
2018-03-20 13:33:07 +11:00
maths/fast.hpp
2017-01-17 19:20:30 +11:00
matrix.cpp
matrix2.cpp
matrix3.cpp
matrix4.cpp
matrix.hpp
memory/deleter.cpp
memory/deleter.hpp
parallel/queue.cpp
parallel/queue.hpp
parallel/stack.cpp
parallel/stack.hpp
parse/fwd.hpp
parse/enum.cpp
parse/enum.hpp
2019-03-19 16:02:07 +11:00
parse/time.cpp
parse/time.hpp
parse/value.cpp
parse/value.hpp
parse/si.cpp
parse/si.hpp
2020-04-21 11:01:03 +10:00
paths.hpp
2017-01-17 19:20:30 +11:00
platform.hpp
point.cpp
point.hpp
pointer.hpp
polynomial.cpp
polynomial.hpp
pool.cpp
pool.hpp
"${CMAKE_CURRENT_BINARY_DIR}/prefix/${PREFIX}/preprocessor.hpp"
2017-01-17 19:20:30 +11:00
quaternion.cpp
quaternion.hpp
2020-12-09 08:47:17 +11:00
rand/distribution/normal.cpp
rand/distribution/normal.hpp
rand/distribution/uniform.cpp
rand/distribution/uniform.hpp
2020-08-18 07:20:26 +10:00
rand/generic.hpp
2017-01-17 19:20:30 +11:00
rand/lcg.cpp
rand/lcg.hpp
rand/mwc64x.cpp
rand/mwc64x.hpp
2019-02-21 20:53:58 +11:00
rand/pcg.cpp
rand/pcg.hpp
2019-06-19 12:02:50 +10:00
rand/rdrand.cpp
rand/rdrand.hpp
rand/splitmix64.hpp
rand/system.hpp
2020-08-17 14:30:55 +10:00
rand/xoshiro.cpp
rand/xoshiro.hpp
rand/xorshift.cpp
rand/xorshift.hpp
2017-01-17 19:20:30 +11:00
random.cpp
random.hpp
range.cpp
range.hpp
rational.cpp
rational.hpp
region.cpp
region.hpp
registrar.cpp
registrar.hpp
2017-01-17 19:20:30 +11:00
roots/bisection.hpp
scoped.hpp
set/dset.cpp
set/dset.hpp
2017-01-17 19:20:30 +11:00
signal.cpp
signal.hpp
2018-03-22 15:06:48 +11:00
singleton.hpp
2017-01-17 19:20:30 +11:00
stats.cpp
stats.hpp
2018-06-03 15:25:17 +10:00
std.hpp
2017-01-17 19:20:30 +11:00
stream.cpp
stream.hpp
string.cpp
string.hpp
stringcache.cpp
stringcache.hpp
2017-01-17 19:20:30 +11:00
stringid.cpp
stringid.hpp
strongdef.cpp
strongdef.hpp
sysinfo.hpp
2017-01-17 19:20:30 +11:00
tap.cpp
tap.hpp
term.cpp
term.hpp
thread/event.hpp
thread/flag.hpp
thread/monitor.cpp
thread/monitor.hpp
thread/ticketlock.cpp
thread/ticketlock.hpp
thread/spinlock.cpp
thread/spinlock.hpp
2017-01-17 19:20:30 +11:00
time.cpp
time.hpp
2018-01-01 15:47:41 +11:00
time/parse.hpp
time/parse8601.cpp
tuple/index.hpp
tuple/type.hpp
tuple/value.hpp
typeidx.cpp
typeidx.hpp
2018-11-13 12:57:19 +11:00
types.hpp
types/sized.hpp
2017-01-17 19:20:30 +11:00
types/comparator.hpp
types/description.cpp
types/description.hpp
types/dispatch.hpp
2017-01-17 19:20:30 +11:00
types/string.cpp
types/string.hpp
2018-11-13 12:57:19 +11:00
types/tagged.hpp
2017-01-17 19:20:30 +11:00
types/traits.hpp
uri.cpp
uri.hpp
2017-10-02 15:25:59 +11:00
utf8.cpp
utf8.hpp
2017-01-17 19:20:30 +11:00
variadic.cpp
variadic.hpp
vector.cpp
vector.hpp
version.cpp
version.hpp
view.cpp
view.hpp
)
option (SIMD "enable simd support" OFF)
2019-06-18 11:25:30 +10:00
if (SIMD)
list (APPEND UTIL_FILES
"coord/simd.cpp"
"coord/simd.hpp"
"coord/simd_sse.hpp"
"coord/simd_neon.hpp"
)
endif ()
##-----------------------------------------------------------------------------
## We shouldn't be building into the source directory, but I can't stand trying
## to coax CMake into behaving here any longer. Feel free to fix it.
add_custom_command (
OUTPUT
"${CMAKE_CURRENT_BINARY_DIR}/prefix/${PREFIX}/preprocessor.hpp"
COMMENT
"[preprocessor.py] preprocessor.hpp"
COMMAND
"${PYTHON_EXECUTABLE}"
"${CMAKE_CURRENT_SOURCE_DIR}/preprocessor.py"
"${CMAKE_CURRENT_BINARY_DIR}/prefix/${PREFIX}/preprocessor.hpp"
480
DEPENDS
"${CMAKE_CURRENT_SOURCE_DIR}/preprocessor.py"
)
2017-01-17 19:20:30 +11:00
###############################################################################
target_sources(cruft PRIVATE ${UTIL_FILES})
add_library(cruft-util ALIAS cruft)
2019-06-18 11:26:03 +10:00
target_include_directories(cruft PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}")
install (TARGETS cruft LIBRARY COMPONENT development)
2019-06-18 11:26:03 +10:00
set (headers ${UTIL_FILES})
list (FILTER headers INCLUDE REGEX "\\.hpp$")
install (FILES ${headers} DESTINATION "include/cruft/util" COMPONENT development)
2019-06-18 11:26:03 +10:00
search_libs (SHM_LIBS shm_open rt)
search_libs (DL_LIBS dlopen dl)
search_libs (CLOCK_LIBS clock_gettime rt c)
search_libs (MATH_LIBS cos m)
target_link_libraries(cruft ${SHM_LIBS})
target_link_libraries(cruft ${DL_LIBS})
target_link_libraries(cruft ${CLOCK_LIBS})
target_link_libraries(cruft ${MATH_LIBS})
# HACK: -ldl isn't getting discovered correctly so we add it unconditionally
# for the time being.
if (NOT WIN32)
target_link_libraries(cruft dl)
endif ()
2017-01-17 19:20:30 +11:00
###############################################################################
foreach (tool backtrace cpuid crash log poisson macro scratch)
add_executable (util_${tool} tools/${tool}.cpp)
set_target_properties (util_${tool} PROPERTIES OUTPUT_NAME ${tool})
target_link_libraries (util_${tool} cruft)
target_include_directories(util_${tool} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
target_include_directories(util_${tool} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/prefix/${PREFIX}")
endforeach ()
2017-01-17 19:20:30 +11:00
###############################################################################
option (TESTS "enable unit testing" ON)
2017-01-18 21:46:25 +11:00
if (TESTS)
include(CTest)
enable_testing()
list (
APPEND TEST_BIN
ascii
2018-11-14 10:21:51 +11:00
algo/search
algo/sort
alloc/aligned/foreign
alloc/aligned/direct
alloc/easy
alloc/linear
alloc/stack
affine
array/darray
array/sarray
array/parray
backtrace
bezier
bitwise
buffer/simple
cmdopt
colour
2020-02-18 11:23:21 +11:00
concepts
comparator
coord
2021-05-13 13:13:22 +10:00
debug/fpe
encode/number
encode/base
endian
exe
expected
extent
fixed
float
geom/aabb
2018-04-16 15:59:39 +10:00
geom/ellipse
2018-03-13 22:37:40 +11:00
geom/frustum
2018-04-20 15:04:54 +10:00
geom/line
geom/plane
2018-04-16 15:59:39 +10:00
geom/ray
geom/sample/edge
geom/sample/subregion
geom/segment
geom/sphere
hash/buzhash
hash/checksum
hash/crc
hash/fasthash
hash/fnv1a
2020-11-03 12:43:35 +11:00
hash/halfsipmix
hash/murmur
2018-01-19 11:31:12 +11:00
hash/siphash
hash/table
hash/xxhash
hton
io
introspection
iterator
job/dispatch
job/queue
2018-04-18 21:48:24 +10:00
kmeans
list/sort
2019-03-28 14:27:34 +11:00
map/fixed
map/multi_fixed
maths
2018-03-20 13:33:07 +11:00
maths/fast
matrix
memory/deleter
parallel/queue
parallel/stack
parse/enum
parse/value
2019-03-19 16:02:07 +11:00
parse/time
parse/si
point
polynomial
pool
preprocessor
quaternion
rand/buckets
2020-12-09 08:47:17 +11:00
rand/generator/normal
random
range
rational
region
registrar
roots/bisection
2019-04-12 16:40:17 +10:00
scoped
set/dset
signal
2018-03-22 15:06:48 +11:00
singleton
stream
string
stringid
stringcache
strongdef
thread/event
thread/flag
thread/monitor
thread/semaphore
thread/spinlock
thread/ticketlock
2018-01-01 15:47:41 +11:00
time/8601
2017-09-08 14:20:01 +10:00
traits
tuple/index
2018-04-05 13:54:42 +10:00
tuple/value
tuple/type
typeidx
types/description
2018-11-13 12:57:19 +11:00
types/tagged
uri
2017-10-02 15:25:59 +11:00
utf8
vector
version
view
)
if (NOT WIN32)
list (APPEND TEST_BIN
buffer/circular
buffer/paged
)
endif ()
if (SIMD)
list (APPEND TEST_BIN
coord/simd
)
endif()
2019-05-24 10:58:32 +10:00
add_custom_target(util_test)
foreach(t ${TEST_BIN})
string(REPLACE "/" "_" name "test/${t}")
add_executable(util_${name} test/${t}.cpp)
target_link_libraries(util_${name} PRIVATE cruft)
target_include_directories(util_${name} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
target_include_directories(util_${name} PRIVATE "${CMAKE_CURRENT_BINARY_DIR}/prefix/${PREFIX}")
add_test(NAME util_${name} COMMAND util_${name})
set_tests_properties(util_${name} PROPERTIES FAIL_REGULAR_EXPRESSION "not ok -")
2019-05-24 10:58:32 +10:00
add_dependencies(util_test util_${name})
endforeach(t)
2018-04-01 14:49:10 +10:00
configure_file (test/cpp.py.in util_test_cpp.py @ONLY)
add_test (NAME util_test_cpp COMMAND ${PYTHON_EXECUTABLE} util_test_cpp.py)
2018-04-01 14:49:10 +10:00
set_property (TEST util_test_cpp APPEND PROPERTY DEPENDS util_macro)
set_tests_properties(util_test_cpp PROPERTIES FAIL_REGULAR_EXPRESSION "not ok -")
2019-05-24 10:58:32 +10:00
2017-01-18 21:46:25 +11:00
endif ()
2017-01-17 19:20:30 +11:00
###############################################################################
configure_file(libcruft.pc.in libcruft.pc @ONLY)
install (
FILES
"${CMAKE_CURRENT_BINARY_DIR}/libcruft.pc"
DESTINATION
"share/pkgconfig"
COMPONENT
development
)
configure_file(Doxyfile.in Doxyfile)