Allow two cmake_add_fortran_subdirectory calls in the same project.
Configure the build_mingw.cmake.in config_mingw.cmake.in files into the binary directory of the directory being built, not the top level binary directory for the project.
This commit is contained in:
parent
a8b5714935
commit
087bea35c1
|
@ -50,7 +50,7 @@ include(CheckLanguage)
|
||||||
include(ExternalProject)
|
include(ExternalProject)
|
||||||
include(CMakeParseArguments)
|
include(CMakeParseArguments)
|
||||||
|
|
||||||
function(_setup_mingw_config_and_build source_dir)
|
function(_setup_mingw_config_and_build source_dir build_dir)
|
||||||
# Look for a MinGW gfortran.
|
# Look for a MinGW gfortran.
|
||||||
find_program(MINGW_GFORTRAN
|
find_program(MINGW_GFORTRAN
|
||||||
NAMES gfortran
|
NAMES gfortran
|
||||||
|
@ -91,11 +91,11 @@ function(_setup_mingw_config_and_build source_dir)
|
||||||
string(REPLACE "\\" "\\\\" MINGW_PATH "${MINGW_PATH}")
|
string(REPLACE "\\" "\\\\" MINGW_PATH "${MINGW_PATH}")
|
||||||
configure_file(
|
configure_file(
|
||||||
${_MS_MINGW_SOURCE_DIR}/CMakeAddFortranSubdirectory/config_mingw.cmake.in
|
${_MS_MINGW_SOURCE_DIR}/CMakeAddFortranSubdirectory/config_mingw.cmake.in
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/config_mingw.cmake
|
${build_dir}/config_mingw.cmake
|
||||||
@ONLY)
|
@ONLY)
|
||||||
configure_file(
|
configure_file(
|
||||||
${_MS_MINGW_SOURCE_DIR}/CMakeAddFortranSubdirectory/build_mingw.cmake.in
|
${_MS_MINGW_SOURCE_DIR}/CMakeAddFortranSubdirectory/build_mingw.cmake.in
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/build_mingw.cmake
|
${build_dir}/build_mingw.cmake
|
||||||
@ONLY)
|
@ONLY)
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
@ -144,15 +144,15 @@ function(cmake_add_fortran_subdirectory subdir)
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
# create build and configure wrapper scripts
|
# create build and configure wrapper scripts
|
||||||
_setup_mingw_config_and_build(${source_dir})
|
_setup_mingw_config_and_build("${source_dir}" "${build_dir}")
|
||||||
# create the external project
|
# create the external project
|
||||||
externalproject_add(${project_name}_build
|
externalproject_add(${project_name}_build
|
||||||
SOURCE_DIR ${source_dir}
|
SOURCE_DIR ${source_dir}
|
||||||
BINARY_DIR ${build_dir}
|
BINARY_DIR ${build_dir}
|
||||||
CONFIGURE_COMMAND ${CMAKE_COMMAND}
|
CONFIGURE_COMMAND ${CMAKE_COMMAND}
|
||||||
-P ${CMAKE_CURRENT_BINARY_DIR}/config_mingw.cmake
|
-P ${build_dir}/config_mingw.cmake
|
||||||
BUILD_COMMAND ${CMAKE_COMMAND}
|
BUILD_COMMAND ${CMAKE_COMMAND}
|
||||||
-P ${CMAKE_CURRENT_BINARY_DIR}/build_mingw.cmake
|
-P ${build_dir}/build_mingw.cmake
|
||||||
INSTALL_COMMAND ""
|
INSTALL_COMMAND ""
|
||||||
)
|
)
|
||||||
# make the external project always run make with each build
|
# make the external project always run make with each build
|
||||||
|
|
Loading…
Reference in New Issue