blob: 2e527f9fe28962d33bea5181def875694ee5ad7c (
plain)
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
36
37
38
39
|
cmake_minimum_required(VERSION 2.8)
project(VSGNUFortran)
# force the executable to be put out of Debug/Release dir
# because gmake build of fortran will not be in a config
# directory, and for easier testing we want the exe and .dll
# to be in the same directory.
if(CMAKE_CONFIGURATION_TYPES)
foreach(config ${CMAKE_CONFIGURATION_TYPES})
string(TOUPPER "${config}" config)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${config}
"${PROJECT_BINARY_DIR}/bin")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${config}
"${PROJECT_BINARY_DIR}/bin")
endforeach()
else()
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
endif()
include(CMakeAddFortranSubdirectory)
# add the fortran subdirectory as a fortran project
# the subdir is fortran, the project is FortranHello
cmake_add_fortran_subdirectory(fortran
PROJECT FortranHello # project name in toplevel CMakeLists.txt
ARCHIVE_DIR ../bin # .lib location relative to root binary tree
RUNTIME_DIR ../bin # .dll location relative to root binary tree
LIBRARIES hello world # target libraries created
CMAKE_COMMAND_LINE -DEXECUTABLE_OUTPUT_PATH=../bin
-DLIBRARY_OUTPUT_PATH=../bin
LINK_LIBRARIES # link interface libraries
LINK_LIBS hello world # hello needs world to link
)
include_directories(${VSGNUFortran_BINARY_DIR}/fortran)
add_subdirectory(c_code)
# use a cmake script to run the executable so that PATH
# can be set with the MinGW/bin in it, and the fortran
# runtime libraries can be found.
configure_file(runtest.cmake.in runtest.cmake @ONLY)
|