[CMake] Installing CMake for multiple platforms

Kris Dekeyser Kris.Dekeyser at lms.be
Fri Jun 30 05:35:11 EDT 2006


I have checked in the CMake binaries in our cvs repositories, because that makes it easier to set up the proper build environment on new machines.
 
I have currently checked in version 2.0.6, but I want to upgrade to the latest version to support VS 2005 64 bit builds. I noticed though that the structure of the installation dir changed slightly.

Here's what I currently checked in:
 
\BUILDTOOLS\CMAKE
├───EdmTemplates
├───hpux
│   ├───bin
│   ├───include
│   ├───Modules
│   │   └───Platform
│   └───Templates
└───Win32
    ├───bin
    ├───include
    ├───Modules
    │   └───Platform
    └───Templates
 
As you may have noticed, we currently use CMake on HPPUX and Win32, with probably more platforms to come.

We also developed a large set of CMake macros to simplify CMakeLists.txt configuration. The "nasty" thing about this tree is that the platform independent include, Modules and Templates directories are located in each platform's directory and have to be copied in each platform dir. This is also the case for our macro files, because INCLUDE(EDMTools) will search in the Modules sub-dir.

In order to prevent maintaining the same file in several directories, the actual macro file is in \BuildTools\CMake and the platform specific EDMTools.cmake contains:

STRING(REGEX REPLACE "/CMake.*" "" BUILDTOOLS_DIR "${CMAKE_ROOT}")

MESSAGE(STATUS "BUILDTOOLS_DIR = ${BUILDTOOLS_DIR}")

INCLUDE("${BUILDTOOLS_DIR}/CMake/EDMTools.cmake")

Now, after installing CMake 2.4.2 locally, I noticed the directory structure now looks like this:
 

D:\APPS\CMAKE 2.4
├───bin
├───doc
│   └───CMake
├───man
│   └───man1
└───share
    └───CMake
        ├───include
        ├───Modules
        │   └───Platform
        └───Templates

How will CMake locate the Modules directory and is there now an easy way to have multiple platform specific binaries with a single Modules and Templates dir?

Best regards, Kris
+-+-+- Email Confidentiality Footer +-+-+- 
Privileged/Confidential Information may be contained in this message. If you are not the addressee indicated in this message (or responsible for delivery of the message to such person), you may not print, retain, copy nor disseminate this message or any part of it to anyone and you should notify the sender by reply email and destroy this message. Neglecting this clause could be a breach of confidence. Please advise immediately if you or your employer does not consent to Internet email for messages of this kind. Opinions, conclusions and other information in this message that are not related to the official business of my firm shall be understood as neither given nor endorsed by it.


More information about the CMake mailing list