On Nov 16, 2007 5:19 PM, Mike Jackson <[EMAIL PROTECTED]> wrote: > I am trying to create a cmake build system for a 3rd party library. > The trouble I am having is that I need a definition for the dynamic > library ONLY, but when I build the ensuing test executables I need to > have a _different_ definition defined. > > At first I did the usual: > > IF(BUILD_SHARED_LIBS) > IF (WIN32) > ADD_DEFINITION(-D_BUILD_DLL_) > ENDIF(WIN32) > ENDIF (BUILD_SHARED_LIBS) > > Then in I have ADD_SUBDIRECTORY(test) > and in the test/CMakeLists.txt file I have > > IF(BUILD_SHARED_LIBS) > IF (WIN32) > ADD_DEFINITION(-D_USE_DLL_) > ENDIF(WIN32) > ENDIF (BUILD_SHARED_LIBS) > > but when I create my VS2003.net project from CMake (2.4.6) I get BOTH > definitions in the testing targets.
Why wouldn't you? Variables are propagated to subdirectories, and I imagine definitions are also. Perhaps you want to put your ADD_SUBDIRECTORY statement earlier, to prevent propagation of -D_BUILD_DLL. Perhaps you want the REMOVE_DEFINITIONS command? Cheers, Brandon Van Every _______________________________________________ CMake mailing list [email protected] http://www.cmake.org/mailman/listinfo/cmake
