42 lines
1.7 KiB
CMake
42 lines
1.7 KiB
CMake
cmake_minimum_required(VERSION 2.8)
|
|
project(VSGNUFortran)
|
|
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/bin")
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib")
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/lib")
|
|
|
|
# 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_RUNTIME_OUTPUT_DIRECTORY_${config}
|
|
${CMAKE_RUNTIME_OUTPUT_DIRECTORY})
|
|
endforeach()
|
|
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 ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}
|
|
RUNTIME_DIR bin # ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
|
|
LIBRARIES hello world # target libraries created
|
|
CMAKE_COMMAND_LINE
|
|
-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=${CMAKE_RUNTIME_OUTPUT_DIRECTORY}
|
|
-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY=${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}
|
|
-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=${CMAKE_LIBRARY_OUTPUT_DIRECTORY}
|
|
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)
|