From Wang Rui, "The OSG book I'm working on will focus on helping beginners build
latest OSG source code with Visual Studio 2010 express, without setting too many options and without facing unexpected errors. But at present, the compilation process will fail because the INSTALL project 'cannot find' generated DLLs while copying files. I have looked into the build directory and found that the places of generated file folders were just different from previous VS versions. In this case, the old hack in OsgMacroUtils.cmake may become invalid: MACRO(HANDLE_MSVC_DLL) #this is a hack... the build place is set to lib/<debug or release> by LIBARARY_OUTPUT_PATH equal to OUTPUT_LIBDIR #the .lib will be crated in ../ so going straight in lib by the IMPORT_PREFIX property #because we want dll placed in OUTPUT_BINDIR ie the bin folder sibling of lib, we can use ../../bin to go there, ... ELSE(NOT MSVC_IDE) SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES PREFIX "../../bin/${LIB_PREFIX}${LIB_SOVERSION}-" IMPORT_PREFIX "../") ENDIF(NOT MSVC_IDE) ENDMACRO(HANDLE_MSVC_DLL) Here the prefix "../../bin" may need to be fixed. I just modified it to: IF(MSVC_VERSION LESS 1600) SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES PREFIX "../../bin/${LIB_PREFIX}${LIB_SOVERSION}-" IMPORT_PREFIX "../") ENDIF() It should keep compatible with old MSVC versions. There are similar fixes in the SETUP_PLUGIN and SETUP_EXE macros. I haven't tested them on more platforms. "
This commit is contained in:
parent
5e70c17f2a
commit
6b9bbc7ca9
@ -170,7 +170,9 @@ MACRO(SETUP_PLUGIN PLUGIN_NAME)
|
|||||||
IF(NOT MSVC_IDE)
|
IF(NOT MSVC_IDE)
|
||||||
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES PREFIX "${OSG_PLUGINS}/")
|
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES PREFIX "${OSG_PLUGINS}/")
|
||||||
ELSE(NOT MSVC_IDE)
|
ELSE(NOT MSVC_IDE)
|
||||||
|
IF(MSVC_VERSION LESS 1600)
|
||||||
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES PREFIX "../${OSG_PLUGINS}/")
|
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES PREFIX "../${OSG_PLUGINS}/")
|
||||||
|
ENDIF()
|
||||||
ENDIF(NOT MSVC_IDE)
|
ENDIF(NOT MSVC_IDE)
|
||||||
ELSE(${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} GREATER 4)
|
ELSE(${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} GREATER 4)
|
||||||
IF(OSG_MSVC_VERSIONED_DLL)
|
IF(OSG_MSVC_VERSIONED_DLL)
|
||||||
@ -274,7 +276,9 @@ MACRO(SETUP_EXE IS_COMMANDLINE_APP)
|
|||||||
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES MINSIZEREL_OUTPUT_NAME "${TARGET_NAME}${CMAKE_MINSIZEREL_POSTFIX}")
|
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES MINSIZEREL_OUTPUT_NAME "${TARGET_NAME}${CMAKE_MINSIZEREL_POSTFIX}")
|
||||||
|
|
||||||
IF(MSVC_IDE AND OSG_MSVC_VERSIONED_DLL)
|
IF(MSVC_IDE AND OSG_MSVC_VERSIONED_DLL)
|
||||||
|
IF(MSVC_VERSION LESS 1600)
|
||||||
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES PREFIX "../")
|
SET_TARGET_PROPERTIES(${TARGET_TARGETNAME} PROPERTIES PREFIX "../")
|
||||||
|
ENDIF()
|
||||||
ENDIF(MSVC_IDE AND OSG_MSVC_VERSIONED_DLL)
|
ENDIF(MSVC_IDE AND OSG_MSVC_VERSIONED_DLL)
|
||||||
|
|
||||||
SETUP_LINK_LIBRARIES()
|
SETUP_LINK_LIBRARIES()
|
||||||
@ -373,7 +377,9 @@ MACRO(HANDLE_MSVC_DLL)
|
|||||||
)
|
)
|
||||||
ENDIF (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
|
ENDIF (${CMAKE_MAJOR_VERSION} EQUAL 2 AND ${CMAKE_MINOR_VERSION} EQUAL 4)
|
||||||
ELSE(NOT MSVC_IDE)
|
ELSE(NOT MSVC_IDE)
|
||||||
|
IF(MSVC_VERSION LESS 1600)
|
||||||
SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES PREFIX "../../bin/${LIB_PREFIX}${LIB_SOVERSION}-" IMPORT_PREFIX "../")
|
SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES PREFIX "../../bin/${LIB_PREFIX}${LIB_SOVERSION}-" IMPORT_PREFIX "../")
|
||||||
|
ENDIF()
|
||||||
ENDIF(NOT MSVC_IDE)
|
ENDIF(NOT MSVC_IDE)
|
||||||
|
|
||||||
# SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES PREFIX "../../bin/osg${OPENSCENEGRAPH_SOVERSION}-")
|
# SET_TARGET_PROPERTIES(${LIB_NAME} PROPERTIES PREFIX "../../bin/osg${OPENSCENEGRAPH_SOVERSION}-")
|
||||||
|
Loading…
Reference in New Issue
Block a user