浏览代码

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.
Bill Hoffman 13 年之前
父节点
当前提交
087bea35c1
共有 1 个文件被更改,包括 6 次插入6 次删除
  1. 6 6
      Modules/CMakeAddFortranSubdirectory.cmake

+ 6 - 6
Modules/CMakeAddFortranSubdirectory.cmake

@@ -50,7 +50,7 @@ include(CheckLanguage)
 include(ExternalProject)
 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.
   find_program(MINGW_GFORTRAN
     NAMES gfortran
@@ -91,11 +91,11 @@ function(_setup_mingw_config_and_build source_dir)
   string(REPLACE "\\" "\\\\" MINGW_PATH "${MINGW_PATH}")
   configure_file(
     ${_MS_MINGW_SOURCE_DIR}/CMakeAddFortranSubdirectory/config_mingw.cmake.in
-    ${CMAKE_CURRENT_BINARY_DIR}/config_mingw.cmake
+    ${build_dir}/config_mingw.cmake
     @ONLY)
   configure_file(
     ${_MS_MINGW_SOURCE_DIR}/CMakeAddFortranSubdirectory/build_mingw.cmake.in
-    ${CMAKE_CURRENT_BINARY_DIR}/build_mingw.cmake
+    ${build_dir}/build_mingw.cmake
     @ONLY)
 endfunction()
 
@@ -144,15 +144,15 @@ function(cmake_add_fortran_subdirectory subdir)
     endif()
   endforeach()
   # 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
   externalproject_add(${project_name}_build
     SOURCE_DIR ${source_dir}
     BINARY_DIR ${build_dir}
     CONFIGURE_COMMAND ${CMAKE_COMMAND}
-    -P ${CMAKE_CURRENT_BINARY_DIR}/config_mingw.cmake
+    -P ${build_dir}/config_mingw.cmake
     BUILD_COMMAND ${CMAKE_COMMAND}
-    -P ${CMAKE_CURRENT_BINARY_DIR}/build_mingw.cmake
+    -P ${build_dir}/build_mingw.cmake
     INSTALL_COMMAND ""
     )
   # make the external project always run make with each build