-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathCMakeLists.txt
62 lines (47 loc) · 1.9 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
cmake_minimum_required(VERSION 3.9)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
option(test "Build all tests." OFF)
project(BBTRACE)
set (CMAKE_CXX_STANDARD 11)
if (MSVC)
add_library(bbtrace_core STATIC
src/bbtrace_core.c src/codecache.c
src/synchro.c src/winapi.c)
target_compile_definitions(bbtrace_core PUBLIC WINDOWS X86_32)
target_include_directories(bbtrace_core PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src $ENV{DYNAMORIO_HOME}/include)
if (CMAKE_BUILD_TYPE STREQUAL Debug)
set_target_properties(bbtrace_core PROPERTIES COMPILE_FLAGS /MTd)
else ()
set_target_properties(bbtrace_core PROPERTIES COMPILE_FLAGS /MT)
endif()
find_package(DynamoRIO 6.0)
if (NOT DynamoRIO_FOUND)
message(FATAL_ERROR "DynamoRIO package required to build")
endif(NOT DynamoRIO_FOUND)
if (test)
# enable_testing()
add_executable(test_app tests/test_app.cpp)
set_target_properties(test_app PROPERTIES COMPILE_FLAGS /EHa)
add_library(test_bbtrace SHARED tests/test_bbtrace.c)
target_link_libraries(test_bbtrace bbtrace_core)
configure_DynamoRIO_client(test_bbtrace)
use_DynamoRIO_extension(test_bbtrace drmgr)
use_DynamoRIO_extension(test_bbtrace drwrap)
use_DynamoRIO_extension(test_bbtrace drutil)
use_DynamoRIO_extension(test_bbtrace drcontainers)
# add_test(RevengiTests test_bbtrace)
# drrun.exe -c test_bbtrace.dll -- test_app.exe > ..\tests\test_bbtrace.expect 2>&1
endif()
add_library(bbtrace SHARED src/bbtrace.cpp)
target_link_libraries(bbtrace bbtrace_core)
configure_DynamoRIO_client(bbtrace)
use_DynamoRIO_extension(bbtrace drmgr)
use_DynamoRIO_extension(bbtrace drwrap)
use_DynamoRIO_extension(bbtrace drutil)
use_DynamoRIO_extension(bbtrace drcontainers)
if (CMAKE_BUILD_TYPE STREQUAL Debug)
else()
set_target_properties(bbtrace PROPERTIES LINK_FLAGS /INCREMENTAL:NO)
endif()
endif()
add_subdirectory (parselog)