From Rene Molenaar, "Using commandline build system nmake on windows does not work.

This is caused by the OSG_MSVC_VERSIONED_DLL hack.
there are hard-coded paths to place the dll's in the bin /dir that normally would go
in the lib/config (release/debug) dirs. Nmake has different locations for the files (no config dir).
 
 fix: change the macro's in OsgMacroUtils.cmake for the IF(NOT MSVC_IDE) situation.
 Libs go in lib/, and DLLs and executables go in bin/
 To accopmplish this for MSVC_IDE the targets get a "../../bin" prefix,
 for nmake this should be "../bin" (because there are no config folders).

 This fix mimics the behaviour of the MSCV_IDE (visual studio) build system when building with nmake.
 
 Note:
 A change in the main CMakeLists.txt creates the needed plugin directory in the binary dir.
 
 see included files for the changes:
 r7885fix-v2/CMakeModules/OsgMacroUtils.cmake  
 r7885fix-v2/osgWrappers/CMakeLists.txt
 r7885fix-v2/CMakeLists.txt
 
 
The behaviour of visual studio projects (and other build systems) remain unchanged.  
Tested building and installing with nmake and visual studio 8 debug and release.
 "
This commit is contained in:
Robert Osfield
2008-02-18 15:26:46 +00:00
parent 49ef41b373
commit e0e862e31a
3 changed files with 71 additions and 43 deletions

View File

@@ -78,8 +78,13 @@ MACRO(ADD_WRAPPER_LIB SUBDIR EXPORTDEF)
#changing bin to something else breaks this hack
#the dll are placed in bin/${OSG_PLUGINS}
SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES PREFIX "../../bin/${OSG_PLUGINS}/")
SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES IMPORT_PREFIX "../")
IF(NOT MSVC_IDE)
SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES PREFIX "../bin/${OSG_PLUGINS}/")
ELSE(NOT MSVC_IDE)
SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES PREFIX "../../bin/${OSG_PLUGINS}/" IMPORT_PREFIX "../")
ENDIF(NOT MSVC_IDE)
ELSE(OSG_MSVC_VERSIONED_DLL)
#in standard mode (unversioned) the .lib and .dll are placed in lib/<debug or release>/${OSG_PLUGINS}.