summaryrefslogtreecommitdiffstatshomepage
path: root/src/utils/CMakeLists.txt
blob: 58d4af7fe65379d83ab81e934ebbc61d7575cf05 (plain) (blame)
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
find_package(Boost CONFIG REQUIRED COMPONENTS program_options)

file(GLOB headers CONFIGURE_DEPENDS "*.hpp")

function(add_util name src)
    add_executable("${name}" ${src} ${headers})
    target_link_libraries("${name}" PRIVATE winapi_debug)
    target_link_libraries("${name}" PRIVATE
        Boost::disable_autolinking
        Boost::program_options
    )
    install(TARGETS "${name}" RUNTIME DESTINATION bin)
    if(MSVC)
        install(FILES "$<TARGET_PDB_FILE:${name}>" DESTINATION bin OPTIONAL)
    endif()
endfunction()

add_util(enum_symbols enum_symbols.cpp)
add_util(name2addr name2addr.cpp)
add_util(addr2name addr2name.cpp)

if(MSVC)
    find_package(Python3 REQUIRED COMPONENTS Interpreter)
    add_test(NAME enum_symbols
        WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/cmake"
        COMMAND Python3::Interpreter
        -m project.ctest_driver
        run
        --pass-regex test_ns::baz test_ns::bar test_ns::foo test_ns::var
        --
        "$<TARGET_FILE:enum_symbols>"
        --pdb "$<TARGET_PDB_FILE:test_lib>"
        --mask "test_ns:*"
    )
endif()