3)       Have CMake generate VC Solutions with the same GUIDs each time

I think you want that CMake generates the same GUIDs each time -and- on any computer. We had this problem here, it's a common issue when you have to source controlled your projects.

You have 2 possibilities:

1) Use the same CMakeLists.txt on each computer. It works but it is very limited.

2) Patch CMake to support this feature. This is what we've done here.

So, we implemented a GUID macro for the CMakeLists.txt command:

MACRO(GUID guid)
   # for Visual Studio
   IF(CMAKE_GENERATOR MATCHES "Visual Studio")
       STRING(TOUPPER ${PROJECT_NAME} UPPER_PROJECT_NAME)
       SET(${UPPER_PROJECT_NAME}_GUID ${guid})
   ENDIF(CMAKE_GENERATOR MATCHES "Visual Studio")
ENDMACRO(GUID)

The result is a variable called NAMEPROJECT_GUID.

The idea is to get this variable if it exists in the CMakeCache.txt instead of the variable named CMAKE_PROJECTNAME_GUID which is different when you generate project files on two different computers.
So you have to patch the following methods:
-cmGlobalVisualStudio71Generator::CreateGUID : to adds your GUID to the cache
   -cmGlobalVisualStudio71Generator::GetGUID : to get your GUID

I can't submit a patch since this feature is implemented in a custom generator and it is embedded in a lot of customizations. CMake is the first open source program I am working with and I made some mistakes that prevent me from sharing our custom features to the community.
I will act differently next time.

Sylvain




_______________________________________________
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to