title: How to set MSVC linker in CMake using MSYS
body: <p>I've a problem to force CMake to use the MSVS linker instead of the MinGW
  linker. To support MSVC in MSYS I've implement a bash script forcing CMake
  to use the MSVC compiler to create NMake files:</p>
  
  <blockquote>
    <p>cmake -G "NMake Makefiles" -DMSVC=true -DCOMPILER_ROOT=$COMPILER_ROOT   -DCMAKE_PROFILE=$CMAKE_PROFILE -DCMAKE_BUILD_TYPE=$CMAKE_DEBUG -DCMAKE_CXX_LINKER=$COMPILER_ROOT/bin/linker.exe   </p>
  </blockquote>
  
  <p>CMake uses the MSVC compiler correctly and creates the NMake files as
  expected:</p>
  
  <pre><code>$ sh build.sh -msvc /c/binrev/development/vs2010/VC -p   
  removing CMakeCache.txt
  removing temporary directory CMakeFiles
  Create MSVC based NMake files.
  -- The C compiler identification is MSVC
  -- The CXX compiler identification is MSVC
  -- Check for CL compiler version
  -- Check for CL compiler version - 1600
  -- Check if this is a free VC compiler
  -- Check if this is a free VC compiler - no
  -- Check for working C compiler: c:/binrev/development/vs2010/VC/bin/cl.exe
  -- Check for working C compiler: c:/binrev/development/vs2010/VC/bin/cl.exe -- works
  -- Detecting C compiler ABI info
  -- Detecting C compiler ABI info - done
  -- Check for working CXX compiler: c:/binrev/development/vs2010/VC/bin/cl.exe
  -- Check for working CXX compiler: c:/binrev/development/vs2010/VC/bin/cl.exe -- works
  -- Detecting CXX compiler ABI info
  -- Detecting CXX compiler ABI info - done
  Execute: brCore.cmake 
  Linker path CMAKE_CXX_LINKER: c:/binrev/development/vs2010/VC/bin/link.exe
  </code></pre>
  
  <p>But when invoking nmake, CMAKE still uses the MinGW linker:</p>
  
  <pre><code>Linking CXX shared library bin\brCore.dll
  c:\binrev\development\mingw\bin\ld.exe: unrecognized option '-Wl,--enable-auto-import'
  c:\binrev\development\mingw\bin\ld.exe: use the --help option for usage information
  LINK failed. with 1
  NMAKE : fatal error U1077: "c:\binrev\development\cmake\bin\cmake.exe": Rückgabe-Code  "0xffffffff"
  Stop.
  NMAKE : fatal error U1077: "c:\binrev\development\vs2010\VC\BIN\nmake.exe": Rückgabe-Code "0x2"
  Stop.
  NMAKE : fatal error U1077: "c:\binrev\development\vs2010\VC\BIN\nmake.exe": Rückgabe-Code "0x2"
  Stop.
  </code></pre>
  
  <p>After invoking the bash shell script in CMakeCache the MinGW linker is set instead of MSVC linker:</p>
  
  <pre><code>//Path to a program.
  CMAKE_LINKER:FILEPATH=c:/binrev/development/mingw/bin/ld.exe
  </code></pre>
  
  <p>Ok I've figured out that I've to set the CMAKE_LINKER variable instead of CMAKE_CXX_LINKER to get the correct dependency. But now i got another failure:</p>
  
  <pre><code>Linking CXX shared library bin\brCore.dll
  Das System kann die angegebene Datei nicht finden
  mt.exe : general error c10100b1: Failed to load file "bin\brCore.dll". Das System kann  die angegebene Datei nicht finden.
  MT failed. with 31
  </code></pre>
  
  <p>Has anyone an idea what I've made wrong?
  Thanks for any help.</p>
  
  <p>Best regards,
  Hellhound</p>