Here is how I got around what you describe. My project sounds pretty similar
in how it is set up

when building the exe:
IF (PLATFORM MATCHES "win32")
   IF (CMAKE_GENERATOR MATCHES "Visual Studio 8 2005")
       SET_TARGET_PROPERTIES (${project_exe} PROPERTIES
           LINK_FLAGS "$(TargetDir)/project_shared.lib"
       )
   ELSE (CMAKE_GENERATOR MATCHES "Visual Studio 8 2005") #nmake makefiles
       SET_TARGET_PROPERTIES (${project_exe} PROPERTIES
           LINK_FLAGS "${LIBRARY_OUTPUT_PATH}/project_shared.lib"
       )
   ENDIF (CMAKE_GENERATOR MATCHES "Visual Studio 8 2005")
ELSE (PLATFORM MATCHES "win32")
   SET_TARGET_PROPERTIES (${project_exe} PROPERTIES
       LINK_FLAGS "-L${LIBRARY_OUTPUT_PATH} -lproject_shared"
   )
ENDIF (PLATFORM MATCHES "win32")

building shared library:
IF (PLATFORM MATCHES "win32")
   # nothing
ELSE (PLATFORM MATCHES "win32")
   SET_TARGET_PROPERTIES (${project_SHARED} PROPERTIES
       PREFIX "lib"
   )
ENDIF (PLATFORM MATCHES "win32")

building a plugin:
IF (PLATFORM MATCHES "win32")
   IF (CMAKE_GENERATOR MATCHES "Visual Studio 8 2005")
       SET_TARGET_PROPERTIES (${PLUGIN_NAME} PROPERTIES
           LINK_FLAGS "$(TargetDir)/project_shared.lib"
       )
   ELSE (CMAKE_GENERATOR MATCHES "Visual Studio 8 2005") #nmake
       SET_TARGET_PROPERTIES (${PLUGIN_NAME} PROPERTIES
           LINK_FLAGS "${LIBRARY_OUTPUT_PATH}/project_shared.lib"
       )
   ENDIF (CMAKE_GENERATOR MATCHES "Visual Studio 8 2005")
ELSE (PLATFORM MATCHES "win32")
   SET_TARGET_PROPERTIES (${PLUGIN_NAME} PROPERTIES
       LINK_FLAGS "-L${LIBRARY_OUTPUT_PATH} -lproject_shared"
   )
ENDIF (PLATFORM MATCHES "win32")

exe depends on shared library
plugins depend on shared library

the plugins in my case, are the ones that depend on the third party
libraries
_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to