Связывание math.h через CMake при добавлении внешнего проекта, отличного от CMakeC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Связывание math.h через CMake при добавлении внешнего проекта, отличного от CMake

Сообщение Anonymous »

Я работаю над базой кода C++ 17, для сборки которой используется CMakeLists. Я пытаюсь добавить внешний проект (PocketFFT: https://gitlab.mpcdf.mpg.de/mtr/pocketfft). PocketFFT не имеет никаких установочных сценариев, CMakeLists или make-файлов... это простая программа, состоящая из файлов .c и .h.
Вот фрагмент в моем 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()
Я не могу правильно связать здесь библиотеку math.h, необходимую для компиляции PocketFFT. Я столкнулся с этим вопросом на StackOverflow, который дал больше информации, но поскольку я пытаюсь импортировать и создать очень простой проект, я не могу просто полагаться на это и связать libm таким образом.
Любая помощь будет оценена по достоинству.


Подробнее здесь: https://stackoverflow.com/questions/793 ... al-project
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Связывание Nanogui в Cmake в качестве внешнего проекта
    Anonymous » » в форуме C++
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous
  • CMake с vcpkg — включение libbid.lib (intel math lib) в качестве зависимости для внешнего исходного кода (TWS API)
    Anonymous » » в форуме C++
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Временная сложность Math.min и Math.max
    Anonymous » » в форуме JAVA
    0 Ответы
    63 Просмотры
    Последнее сообщение Anonymous
  • Почему math.cos(math.pi/2) не возвращает ноль?
    Anonymous » » в форуме Python
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Math.sqrt (x) и Math.pow (x, 0,5) эквивалентны?
    Anonymous » » в форуме Javascript
    0 Ответы
    35 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»