Hi,

I'm facing a strange issue with CMake 3.2.2 when building with Visual Studio.

This code snippet shows the problem:

--
set(CS_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/MyLib.cs
               ${CMAKE_CURRENT_SOURCE_DIR}/AssemblyInfo.cs)
add_custom_command(OUTPUT mylib.dll
COMMAND mcs /target:library /out:mylib.dll /debug /keyfile:${CMAKE_CURRENT_SOURCE_DIR}/key.snk ${CS_SOURCES})
--

This will generate and build fine under Linux, using both Makefile or Ninja generators.

Under Windows, it will generate fine but Visual Studio will fail to build, stating that the "C:\build\Mylib.cs" and "C:\build\AssemblyInfo.cs" files cannot be found (source dir is "C:\src"). This indicates that it is in fact trying to find those files in the build directory, instead of the source directory.

This seems to happen only at the building step; at the generation step, ${CMAKE_CURRENT_SOURCE_DIR} correctly points to "C:\src".

For a real-world example, this issue happens when compiling the libiio library with the C# bindings: http://github.com/analogdevicesinc/libiio.git

My current workaround is to copy the source files to the build directory:
https://gist.github.com/pcercuei/380550a3205c91f15b82

--
--
Analog Devices GmbH      Wilhelm-Wagenfeld-Str. 6      80807 Muenchen
Sitz der Gesellschaft: Muenchen; Registergericht: Muenchen HRB 40368;
Geschaeftsfuehrer:Dr.Carsten Suckrow, William A. Martin, Margaret Seif
--

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake-developers

Reply via email to