[CMake] Visual Studio 2010 with /CLR
Tony Duarte
tonyd95010 at yahoo.com
Sun Jun 6 14:43:38 EDT 2010
I just got cmake working with C++ VS2010 .NET, so I thought I'd describe what I did, since the email archive and bug database were the most useful "tutorials" that I found.
My Goal: Create a VS2010/CLR project using cmake.
My Approach: Create the most trivial code using VS2010, and get a cmake CMakeLists.txt that will compile it with nmake so that it runs (the "hello world" is created automatically by VS2010). At that point, I'll know I've got a working CMakeLists.txt for a .NET project.
The steps:
0) Download cmake.
1) In VS2010 create a project and specify a console app using CLR. Try running it to make sure it prints "Hello World". (eg Projects\AJunkProj)
2) Create a parallel directory beside it in Projects. (eg. Projects\AJunkProjBld)
3) Create a CMakeLists.txt in Projects\AJunkProj\AJunkProj. File shown below.
4) Launch a shell window from inside VS2010 to run cmake (otherwise, cmake environment won't find compilation tools). cd to your build directory (eg. Projects\AJunkProjBld)
5) Run: cmake ..\AJunkProject\AJunkProject
6) At this point, for me, there were no errors. So Run: nmake
7) The executable should now exist for you to run (eg. AJunkProj.exe)
In theory, you should be able to debug using nmake VERBOSE=1, though I only got it to display the first level of make commands.
I then ran: cmake -G "Visual Studio 10" ..\AJunkProject\AJunkProject
But I haven't inspected the generated project closely to see if it compiles properly (or at all.)
# My CMakeLists.txt file
PROJECT(AJunkProject)
cmake_minimum_required(VERSION 2.8)
SET(PROJ_SRCS
AJunkProject.cpp
AssemblyInfo.cpp
stdafx.cpp
)
# Mail archive recommended app.rc be added to file list later...don't know why.
IF(WIN32)
SET(PROJ_SRCS ${PROJ_SRCS}
app.rc
)
# add a -l<path> to the typical link line.
TARGET_LINK_LIBRARIES(
wsock32
)
ENDIF(WIN32)
# where to find header files...slashes must by unix style
INCLUDE_DIRECTORIES("C:/Program Files/Microsoft Visual Studio 10.0/VC/include")
# From Mantis bug tracking notes...To set /clr flag for compiler
STRING(REPLACE "/EHsc" "/EHa" CMAKE_CXX_FLAGS ${CMAKE_CXX_FLAGS})
STRING(REPLACE "/RTC1" "" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG})
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /clr")
# set up a target
ADD_EXECUTABLE(AJunkProject ${PROJ_SRCS})
#==========
I realize that my CMakeLists.txt is still pretty rough. It has a couple of unneeded lines and should have more placed inside IF(WIN32), but I'm glad just to have it working.
Thanks for creating cmake,
Tony
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.cmake.org/pipermail/cmake/attachments/20100606/3eaa5d37/attachment.htm>
More information about the CMake
mailing list