On Wednesday 20 December 2006 23:38, Mike Jackson wrote:
So in Project B's CMakeLists.txt file I have:
....
SUBDIRS(${PROJECT_SOURCE_DIR}/Project_A)
....
ADD_EXECUTABLE( MyProgram ${SOURCES})
TARGET_LINK_LIBRARIES( MyProgram ${A_LIB_OUTPUT_NAME})
As far as I understand it variables defined in the main directory (=CMakeLists.txt) will be defined
in the sub directory (=CMakeLists.txt), BUT, variables defined in sub directories will NOT be
defined in the main directory This creates scopes for variables like in most other programming languages.
so this should do it. (It does for me, however I use ADD_SUBDIRECTORY)
SUBDIRS(${PROJECT_SOURCE_DIR}/Project_A)
GET_DIRECTORY_PROPERTY(outvar DIRECTORY ${PROJECT_SOURCE_DIR}/Project_A
DEFINITION A_LIB_OUTPUT_NAME)
ADD_EXECUTABLE( MyProgram ${SOURCES})
TARGET_LINK_LIBRARIES( MyProgram ${outvar})
From the man pages:
SUBDIRS
Add a list of subdirectories to the build.
SUBDIRS(dir1 dir2 ...[EXCLUDE_FROM_ALL exclude_dir1
exclude_dir2 ...] [PREORDER] )
Add a list of subdirectories to the build. *The ADD_SUBDIRECTORY
command should be used instead of SUBDIRS although SUBDIRS will
still work.
*So you should not continue to use SUBDIRS and use ADD_SUBDIRECTORY as
Axel does.
-Sylvain
_______________________________________________
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake