ACPI AML decompiler w/ CFG recovery and structured pseudocode
29

Configure Feed

Select the types of activity you want to include in your feed.

tobi / CMakeLists.txt
2.3 kB 68 lines
1cmake_minimum_required(VERSION 3.16) 2project(tobi VERSION 0.1.0 LANGUAGES C) 3 4option(TOBI_WERROR "Build with warnings as errors" ON) 5option(TOBI_SAN "Build with AddressSanitizer and UndefinedBehaviorSanitizer" OFF) 6option(TOBI_FZ "Build fuzz smoke target" ON) 7 8set(CMAKE_C_STANDARD 11) 9set(CMAKE_C_STANDARD_REQUIRED ON) 10set(CMAKE_C_EXTENSIONS OFF) 11 12set(TOBI_COMMON 13 src/rd.c src/p.c src/op.c src/nm.c src/ir.c src/cf.c src/dc.c 14 src/da.c src/dg.c src/js.c src/mem.c src/str.c) 15 16add_library(tobilib ${TOBI_COMMON}) 17target_include_directories(tobilib PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src) 18target_compile_definitions(tobilib PUBLIC _POSIX_C_SOURCE=200809L) 19 20add_executable(tobi src/main.c) 21target_link_libraries(tobi PRIVATE tobilib) 22 23set(TOBI_WARN -Wall -Wextra -Wpedantic) 24if(TOBI_WERROR) 25 list(APPEND TOBI_WARN -Werror) 26endif() 27target_compile_options(tobilib PRIVATE ${TOBI_WARN}) 28target_compile_options(tobi PRIVATE ${TOBI_WARN}) 29 30if(TOBI_SAN) 31 set(SAN_FLAGS -fsanitize=address,undefined -fno-omit-frame-pointer) 32 target_compile_definitions(tobilib PUBLIC TOBI_SAN_BUILD=1) 33 target_compile_options(tobilib PRIVATE ${SAN_FLAGS}) 34 target_compile_options(tobi PRIVATE ${SAN_FLAGS}) 35 target_link_options(tobi PRIVATE ${SAN_FLAGS}) 36 target_link_options(tobilib INTERFACE ${SAN_FLAGS}) 37endif() 38 39enable_testing() 40 41add_executable(tobi_test 42 test/main.c test/t_rd.c test/t_nm.c test/t_p.c test/t_ir.c 43 test/t_cf.c test/t_da.c test/t_dc.c test/t_js.c test/t_bad.c test/t_cli.c 44 test/t_prod.c) 45target_link_libraries(tobi_test PRIVATE tobilib) 46target_compile_options(tobi_test PRIVATE ${TOBI_WARN}) 47target_compile_definitions(tobi_test PRIVATE 48 TOBI_BIN="$<TARGET_FILE:tobi>" 49 TOBI_SRC_DIR="${CMAKE_CURRENT_SOURCE_DIR}") 50if(TOBI_SAN) 51 target_compile_options(tobi_test PRIVATE ${SAN_FLAGS}) 52 target_link_options(tobi_test PRIVATE ${SAN_FLAGS}) 53endif() 54 55foreach(t rd nm p ir cf da dc js bad cli prod) 56 add_test(NAME ${t} COMMAND tobi_test ${t}) 57endforeach() 58 59if(TOBI_FZ) 60 add_executable(fz fuzz/fz.c) 61 target_link_libraries(fz PRIVATE tobilib) 62 target_compile_options(fz PRIVATE ${TOBI_WARN}) 63 target_compile_definitions(fz PRIVATE TOBI_SRC_DIR="${CMAKE_CURRENT_SOURCE_DIR}") 64 if(TOBI_SAN) 65 target_compile_options(fz PRIVATE ${SAN_FLAGS}) 66 target_link_options(fz PRIVATE ${SAN_FLAGS}) 67 endif() 68endif()