Компиляция на смешанных языках C++, C и Fortran с помощью Cmake

Используя g++, gcc и gfortran в GNU/Linux, я написал простой скрипт для компиляции и компоновки нескольких файлов с исходным кодом, написанных на C++, C и Fortran. Вот полное содержание скрипта. Этот скрипт был протестирован и работает хорошо.

g++ -c test-Q.cpp -I./boost/boost_1_52_0/ -g
 gcc -c paul2.c -g
 gcc -c paul2_L1.c -g
 gcc -c paul6.c -g
 gcc -c paul6_L1.c -g 
 gcc -c fit_slope.c -g
 gfortran -c getqpf.F -g
 g++ -o test-Q test-Q.o paul2.o paul2_L1.o paul6.o paul6_L1.o fit_slope.o getqpf.o -g -lgfortran

Чтобы сделать это более кроссплатформенным, я хотел бы переписать скрипт с помощью Cmake. Как мне справиться со смешанной компиляцией?

Следующий тестовый сценарий, указанный ниже, не работает и будет только выборочно компилировать некоторые файлы.

Возможно, есть другой кроссплатформенный процесс сборки, который лучше подходит для такого типа компиляции?

cmake_minimum_required (VERSION 2.6)
project (q-test)

include_directories(/media/RESEARCH/SAS2-version2/test-Q/boost/boost_1_52_0)

add_executable( q-test
test-Q.cpp
paul2.c
paul2_L1.c 
paul6.c 
paul6_L1.c 
fit_slope.c
getqpf.F
) # end

person Nicholas Kinar    schedule 19.11.2012    source источник


Ответы (1)


Вам нужно включить Fortran для проекта следующим образом:

проект (q-тест C CXX Fortran)

Кроме того, вы можете использовать find_package(Boost) вместо жесткого кодирования пути включения.

person Bill Hoffman    schedule 19.11.2012
comment
Спасибо Билл; это работает удивительно хорошо. Я всегда улыбаюсь, когда использую Cmake, потому что это намного упрощает работу. Удивительно, как он автоматически находит все необходимое. - person Nicholas Kinar; 20.11.2012