From Luigi Calori, CMakeLists.txt support for wrappers
This commit is contained in:
89
src/osgWrappers/CMakeLists.txt
Normal file
89
src/osgWrappers/CMakeLists.txt
Normal file
@@ -0,0 +1,89 @@
|
||||
PROJECT(OSG_WRAPPERS)
|
||||
|
||||
MACRO(ADD_WRAPPER_LIB SUBDIR EXPORTDEF)
|
||||
SET(TARGET_NAME "wrapper_${SUBDIR}")
|
||||
# MESSAGE(STATUS "--inizio-->${TARGET_NAME}<->${LINK}<-")
|
||||
|
||||
FILE(GLOB SRC_FILES ${OSGWRAPPER_DIR}/${SUBDIR}/*.cpp)
|
||||
|
||||
#-- extract link files, defines, exclude files form additional arguments
|
||||
|
||||
SET(LISTNAME "TEMP")
|
||||
SET(DEFSTR "")
|
||||
|
||||
FOREACH(ARG ${ARGN}) # parse remaining args
|
||||
#MESSAGE(STATUS "+ [${ARG}]")
|
||||
#MESSAGE("ARG-->${ARG}")
|
||||
# if we find our keywords set the active list to given keyname
|
||||
STRING(COMPARE EQUAL "${ARG}" "LINK" IS_LINK)
|
||||
STRING(COMPARE EQUAL "${ARG}" "DEFINE" IS_DEFINE)
|
||||
STRING(COMPARE EQUAL "${ARG}" "EXCLUDE" IS_EXCLUDE)
|
||||
|
||||
#MESSAGE(STATUS "STRSTUFF L ${IS_LINK} D ${IS_DEFINE} E ${IS_EXCLUDE}")
|
||||
|
||||
SET(EXPRESSION ${IS_LINK} OR ${IS_DEFINE} OR ${IS_EXCLUDE})
|
||||
IF(${EXPRESSION})
|
||||
SET(${LISTNAME} ${CURRLIST})
|
||||
MESSAGE(STATUS "STORED LIST [${LISTNAME}] = (${CURRLIST})")
|
||||
SET(LISTNAME ${ARG})
|
||||
REMOVE(CURRLIST ${CURRLIST} )
|
||||
|
||||
ELSE(${EXPRESSION})
|
||||
SET(CURRLIST ${CURRLIST} ${ARG})
|
||||
|
||||
ENDIF(${EXPRESSION})
|
||||
ENDFOREACH(ARG)
|
||||
SET(${LISTNAME} ${CURRLIST})
|
||||
#MESSAGE(STATUS "STORED LIST [${LISTNAME}] = (${CURRLIST})")
|
||||
REMOVE(CURRLIST ${CURRLIST} )
|
||||
|
||||
#MESSAGE(STATUS "AFTER: EXC (${EXCLUDE}) DEF (${DEFINE}) LINK (${LINK})")
|
||||
FOREACH(EXF ${EXCLUDE})
|
||||
REMOVE(SRC_FILES ${OPENSCENEGRAPH_DIR}/src/${SUBDIR}/${EXF})
|
||||
ENDFOREACH(EXF)
|
||||
|
||||
FOREACH(DEF ${DEFINE})
|
||||
SET(DEFSTR "${DEFSTR} /D \"${DEF}\"")
|
||||
#MESSAGE(STATUS "add symbol : " ${DEF})
|
||||
ENDFOREACH(DEF)
|
||||
|
||||
IF(NOT DEFSTR STREQUAL "")
|
||||
SET_SOURCE_FILES_PROPERTIES(${SRC_FILES} PROPERTIES COMPILE_FLAGS ${DEFSTR})
|
||||
#MESSAGE(STATUS "********* ADD COMPILE FLAGS ${DEFSTR} **********")
|
||||
ENDIF(NOT DEFSTR STREQUAL "")
|
||||
|
||||
ADD_LIBRARY(${TARGET_NAME} SHARED ${SRC_FILES} )
|
||||
SET_TARGET_PROPERTIES(${TARGET_NAME} PROPERTIES DEFINE_SYMBOL "${EXPORTDEF}" PROJECT_LABEL "Wrapper ${SUBDIR}")
|
||||
TARGET_LINK_LIBRARIES(${TARGET_NAME} ${LINK})
|
||||
#MESSAGE(STATUS "--TARGET_LINK_LIBRARIES-->${TARGET_NAME}<->${LINK}<-")
|
||||
|
||||
REMOVE(DEFINE ${DEFINE})
|
||||
REMOVE(LINK ${LINK})
|
||||
REMOVE(EXCLUDE ${EXCLUDE})
|
||||
|
||||
INSTALL_TARGETS(/lib ${TARGET_NAME} )
|
||||
|
||||
ENDMACRO(ADD_WRAPPER_LIB)
|
||||
|
||||
|
||||
|
||||
SET(OSGWRAPPER_LIB_LIST
|
||||
osg
|
||||
osgDB
|
||||
osgUtil
|
||||
osgGA
|
||||
osgText
|
||||
osgParticle
|
||||
osgFX
|
||||
osgSim
|
||||
osgManipulator
|
||||
osgShadow
|
||||
osgTerrain
|
||||
osgViewer
|
||||
)
|
||||
|
||||
|
||||
SET(OSGWRAPPER_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
||||
FOREACH(LIB ${OSGWRAPPER_LIB_LIST} )
|
||||
ADD_WRAPPER_LIB(${LIB} OSGWRAPPERS_LIBRARY LINK osg ${LIB} osgIntrospection)
|
||||
ENDFOREACH(LIB ${OSGWRAPPER_LIB_LIST} )
|
||||
Reference in New Issue
Block a user