Вот фрагмент в моем CMakeLists. txt, где я пытаюсь это сделать (моей уловкой было просто попытаться включить каталог math.h вручную, но это не сработало):
Код: Выделить всё
if (INCLUDE_POCKETFFT)
message("-- Including PocketFFT as part of the build process")
# Define the ExternalProject
ExternalProject_Add(
PocketFFTProject
GIT_REPOSITORY https://gitlab.mpcdf.mpg.de/mtr/pocketfft.git
GIT_TAG master
CONFIGURE_COMMAND "" # Configuring PocketFFT
BUILD_COMMAND "" # Build PocketFFT
INSTALL_COMMAND ""
LOG_DOWNLOAD ON
# Specify where to clone the source
SOURCE_DIR ${CMAKE_BINARY_DIR}/third_party/pocketfft
)
# Define the PocketFFT library target
add_library(PocketFFT STATIC IMPORTED GLOBAL)
# Set the source directory and properties after PocketFFTProject is fetched
ExternalProject_Get_Property(PocketFFTProject SOURCE_DIR)
set(PocketFFT_SOURCE_DIR ${SOURCE_DIR})
# Include the math library include directory (if needed)
include_directories("/usr/include")
# Create a custom command to compile PocketFFT
add_custom_command(
OUTPUT ${CMAKE_BINARY_DIR}/lib/libPocketFFT.a
COMMAND ${CMAKE_C_COMPILER} -std=c99 -O2 -W -Wall -I/usr/include -c ${PocketFFT_SOURCE_DIR}/pocketfft.c -o ${CMAKE_BINARY_DIR}/pocketfft.o
COMMAND ${CMAKE_AR} rcs ${CMAKE_BINARY_DIR}/lib/libPocketFFT.a ${CMAKE_BINARY_DIR}/pocketfft.o
DEPENDS PocketFFTProject
WORKING_DIRECTORY ${PocketFFT_SOURCE_DIR}
)
# Use the compiled library
add_custom_target(PocketFFTBuild ALL DEPENDS ${CMAKE_BINARY_DIR}/lib/libPocketFFT.a)
set_target_properties(PocketFFT PROPERTIES
IMPORTED_LOCATION ${CMAKE_BINARY_DIR}/lib/libPocketFFT.a
)
# Add PocketFFT include directories
target_include_directories(PocketFFT INTERFACE ${PocketFFT_SOURCE_DIR})
# Link the math library to the PocketFFT target
target_link_libraries(PocketFFT INTERFACE m)
# Install PocketFFT (header and library)
install(FILES ${PocketFFT_SOURCE_DIR}/pocketfft.h DESTINATION include)
install(FILES ${CMAKE_BINARY_DIR}/lib/libPocketFFT.a DESTINATION lib)
endif()
Любая помощь будет оценена по достоинству.
Подробнее здесь: https://stackoverflow.com/questions/793 ... al-project