[CMake] documentation for important cmake variables

Filipe Sousa filipe at ipb.pt
Thu May 12 13:15:11 EDT 2005


On Thursday 12 May 2005 17:15, Alexander Neundorf wrote:
> Hi,
>
> > Von: Filipe Sousa <filipe at ipb.pt>
>
> ...
>
> > Other useful variables that you can put there
> >
> > PROJECT_NAME
> > PROJECT_SOURCE_DIR
> > PROJECT_BINARY_DIR
>
> The concept of PROJECT() in cmake isn't quite clear to me. I can put
> PROJECT() in multiple CMakeLists.txt's in one cmake-managed source tree.
> Which directories do these variables refer to then ?

Just a simple example:

./CMakeLists.txt:

PROJECT(test)

MESSAGE("PROJECT_NAME=${PROJECT_NAME}")
MESSAGE("test_SOURCE_DIR=${test_SOURCE_DIR}")
MESSAGE("test_BINARY_DIR=${test_BINARY_DIR}")
MESSAGE("PROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR}")
MESSAGE("PROJECT_BINARY_DIR=${PROJECT_BINARY_DIR}")
MESSAGE("CMAKE_SOURCE_DIR=${CMAKE_SOURCE_DIR}")
MESSAGE("CMAKE_BINARY_DIR=${CMAKE_BINARY_DIR}")

SUBDIRS(proj1)

./proj1/CMakeLists.txt:
PROJECT(proj1)

MESSAGE("PROJECT_NAME=${PROJECT_NAME}")
MESSAGE("proj1_SOURCE_DIR=${proj1_SOURCE_DIR}")
MESSAGE("proj1_BINARY_DIR=${proj1_BINARY_DIR}")
MESSAGE("PROJECT_SOURCE_DIR=${PROJECT_SOURCE_DIR}")
MESSAGE("PROJECT_BINARY_DIR=${PROJECT_BINARY_DIR}")
MESSAGE("CMAKE_SOURCE_DIR=${CMAKE_SOURCE_DIR}")
MESSAGE("CMAKE_BINARY_DIR=${CMAKE_BINARY_DIR}")

mkdir build && cmake ..

PROJECT_NAME=test
test_SOURCE_DIR=/home/fsousa/tmp/xxx
test_BINARY_DIR=/home/fsousa/tmp/xxx/build
PROJECT_SOURCE_DIR=/home/fsousa/tmp/xxx
PROJECT_BINARY_DIR=/home/fsousa/tmp/xxx/build
CMAKE_SOURCE_DIR=/home/fsousa/tmp/xxx
CMAKE_BINARY_DIR=/home/fsousa/tmp/xxx/build
PROJECT_NAME=proj1
proj1_SOURCE_DIR=/home/fsousa/tmp/xxx/proj1
proj1_BINARY_DIR=/home/fsousa/tmp/xxx/build/proj1
PROJECT_SOURCE_DIR=/home/fsousa/tmp/xxx/proj1
PROJECT_BINARY_DIR=/home/fsousa/tmp/xxx/build/proj1
CMAKE_SOURCE_DIR=/home/fsousa/tmp/xxx
CMAKE_BINARY_DIR=/home/fsousa/tmp/xxx/build

So PROJECT_NAME is the name given to PROJECT()
????_SOURCE_DIR is the same as PROJECT_SOURCE_DIR


> > CMAKE_DEBUG_POSTFIX
I haven't use this before

> > LIBRARY_OUTPUT_PATH
Output directory for all libraries

> > EXECUTABLE_OUTPUT_PATH
Output directoru for all executables

> > BUILD_SHARED_LIBS
When this variable is set, ADD_LIBRARY() by default builds shared libraries

> > CMAKE_BUILD_TYPE
If you set "my_cool_var" cmake is going to use CMAKE_CXX_FLAGS_MY_COOL_VAR 
SET(CMAKE_CXX_FLAGS_MY_COOL_VAR "-O6")

> > CMAKE_MODULE_PATH
To tell cmake where to find scripts in first place
SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)

> I don't really know these variables. Please get a login and add them to
> the wiki :-)
I will, when I have more time
> Bye
> Alex

Filipe Sousa

-- 
Sometimes, too long is too long.
- Joe Crowe
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url : http://public.kitware.com/pipermail/cmake/attachments/20050512/d200a3a5/attachment.pgp


More information about the CMake mailing list