Hi,<br><br>I&#39;m trying to use CMake (version 2.8.10) for a Fortran project with Visual Studio 10 and Intel Visual Fortran Composer XE 2011. But the generated .vfproj file seems to have bugs.<br><br>In my project, Fortran source file is generated using m4 and then build into executable. Assume the source directory is &quot;D:\foo\m4&quot;. Below is the file (for demo) &quot;D:\foo\m4\sub\hello.m4&quot;:<br>
<br>program main<br>&nbsp; implicit none<br>&nbsp; write(*, *) &#39;hello, world!&#39;<br>end program main<br><br>And CMake file &quot;D:\foo\m4\CMakeLists.txt&quot;:<br><br>cmake_mininum_required(VERSION 2.8)<br>project(hello Fortran)<br>
add_custom_command(<br>&nbsp; OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/hello.f90<br>&nbsp; COMMAND m4 ${CMAKE_CURRENT_SOURCE_DIR}/sub/hello.m4 &gt; ${CMAKE_CURRENT_BINARY_DIR}/hello.f90<br>&nbsp; DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/sub/hello.m4<br>
&nbsp; )<br>add_executable(hello hello.f90)<br><br>I build the project in directory &quot;D:\foo\build-vs&quot;:<br><br>cmake ..\m4<br><br>CMake generates the files for Visual Studio. But when built in Visual Studio, it prompts:<br>
<br>&gt;Generating hello.f90<br>&gt;系统找不到指定的批处理标签 - VCEnd<br><br>The second line is in Chinese. I don&#39;t know the exact English sentence. I think it can be translated into &quot;System cannot find the batch tag - VCEnd&quot;. I open hello.vfproj in my editor, and find the snippet below:<br>
<br>&lt;Tool Name=&quot;VFCustomBuildTool&quot; CommandLine=&quot;setlocal<br>m4 D:/foo/m4/sub/hello.m4 &amp;gt; D:/foo/build-vs/hello.f90<br>if %errorlevel% neq 0 goto :cmEnd<br>:cmEnd<br>endlocal &amp;amp; call :cmErrorLevel %errorlevel% &amp;amp; goto :cmDone<br>
:cmErrorLevel<br>exit /b %1<br>:cmDone<br>if %errorlevel% neq 0 goto :VCEnd&quot; Description=&quot;Generating hello.f90&quot; Outputs=&quot;D:\foo\build-vs\hello.f90&quot; AdditionalDependencies=&quot;D:\foo\m4\sub\hello.m4;&quot;/&gt;<br>
<br>So I try to add <br><br>:VCEnd<br>endlocal<br><br>at the end of CommandLine string. Then building in Visual Studio again, it prompts:<br><br>&gt;Generating hello.f90<br>&gt;Project : error PRJ0019: A tool returned an error code from &quot;Generating hello.f90&quot;<br>
<br>It seems something still wrong in the &quot;hello.vfproj&quot;, although the file &quot;D:/foo/build-vs/hello.f90&quot; is correctly generated.<br><br>Is is a bug in CMake, or am I missing anything? Thanks in advance.<br>
<br>