You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
37 lines
1.3 KiB
37 lines
1.3 KiB
cmake_minimum_required(VERSION 3.30) |
|
project(ftracetool C) |
|
|
|
set(CMAKE_C_STANDARD 23) |
|
set(CMAKE_C_STANDARD_REQUIRED ON) |
|
|
|
find_package(PkgConfig) |
|
pkg_search_module(LIBELF REQUIRED libelf) |
|
pkg_search_module(CHIBI_SCHEME REQUIRED chibi-scheme) |
|
|
|
if(NOT CHIBI_SCHEME_FOUND) |
|
message(FATAL_ERROR "chibi-scheme not found!") |
|
endif() |
|
|
|
if(NOT LIBELF_FOUND) |
|
message(FATAL_ERROR "libelf not found!") |
|
endif() |
|
|
|
file(GLOB SOURCES "src/*.c") |
|
|
|
message(STATUS "Libelf include dirs: ${LIBELF_INCLUDE_DIRS}") |
|
message(STATUS "Libelf libraries: ${LIBELF_LIBRARIES}") |
|
|
|
message(STATUS "Chibi-scheme include dirs: ${CHIBI_SCHEME_INCLUDE_DIRS}") |
|
message(STATUS "Chibi-scheme libraries: ${CHIBI_SCHEME_LIBRARIES}") |
|
|
|
add_custom_target(ftracetool_scm.h |
|
COMMAND xxd -i < ${CMAKE_SOURCE_DIR}/src/ftracetool.scm > ${CMAKE_CURRENT_BINARY_DIR}/ftracetool_scm.h) |
|
|
|
add_executable(ftracetool ${SOURCES}) |
|
|
|
add_dependencies(ftracetool ftracetool_scm.h) |
|
target_include_directories(ftracetool PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) |
|
target_include_directories(ftracetool PRIVATE ${LIBELF_INCLUDE_DIRS} ${CHIBI_SCHEME_INCLUDE_DIRS}) |
|
target_link_libraries(ftracetool PRIVATE -L${LIBELF_LIBRARY_DIRS} ${LIBELF_LIBRARIES}) |
|
target_link_libraries(ftracetool PRIVATE -L${CHIBI_SCHEME_LIBRARY_DIRS} ${CHIBI_SCHEME_LIBRARIES}) |
|
|
|
|