Install Problem of Compiler-rt with Visual Studio Express 2013 for Windows Desktop

Hi, All
I have tried to compile and install LLVM on windows 8 using Visual Studio Express 2013 for Windows Desktop.
The compiling is fine. However, the installing gives the following errors:

62> CMake Error at projects/compiler-rt/lib/asan/cmake_install.cmake:34 (FILE):
62> file INSTALL cannot find
62> “C:/llvm/build/$(Configuration)/lib/clang/3.5.0/lib/windows/Release/clang_rt.asan-i386.lib”.
62> Call Stack (most recent call first):
62> projects/compiler-rt/lib/cmake_install.cmake:32 (INCLUDE)
62> projects/compiler-rt/cmake_install.cmake:33 (INCLUDE)
62> projects/cmake_install.cmake:32 (INCLUDE)
62> cmake_install.cmake:55 (INCLUDE)
62>

Do I miss something?

Thanks,
Feng Lu

+Brad
Brad, do you think we should fix add_compiler_rt_static_runtime for
multi-configuration generators
in the same way you fixed add_sanitizer_rt_symbols recently?

Hi, All
I have tried to compile and install LLVM on windows 8 using Visual Studio
Express 2013 for Windows Desktop.
The compiling is fine. However, the installing gives the following errors:
        62> CMake Error at
projects/compiler-rt/lib/asan/cmake_install.cmake:34 (FILE):
        62> file INSTALL cannot find
        62>
"C:/llvm/build/$(Configuration)/lib/clang/3.5.0/lib/windows/Release/clang_rt.asan-i386.lib".

What is the actual location of clang_rt.asan-i386.lib in your build tree?

Hi,
The actual location is in
C:/llvm/build/Release/lib/clang/3.5.0/lib/windows/Release/clang_rt.asan-i386.lib

which just replaces $(Configuration) as Release.

Thanks

Actually this one is a different problem. The install(TARGETS)
command is used so it should know the proper location of the file.
However, it looks like ${CMAKE_CFG_INTDIR} is ending up in target
output directory properties. This is not correct. The target
output directory properties should be plain paths with no native
build-system macros or placeholders, like $(Configuration) in this
case.

The set_output_directory function in AddLLVM properly replaces
that placeholder and sets per-configuration output directory
properties correctly. AddCompilerRT.cmake is using the value
directly in ARCHIVE_OUTPUT_DIRECTORY an LIBRARY_OUTPUT_DIRECTORY.
That causes this problem.

Much of this could be cleaned up throughout LLVM by avoiding use
of ${CMAKE_CFG_INTDIR} and using generator expressions like
$<TARGET_FILE> to refer to target locations instead. This quick
fix for compiler-rt though is to adopt set_output_directory.

-Brad