Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Jun 10, 2010, 12:04:41 AM (14 years ago)
Author:
rgrieder
Message:

Automatically handle DEFINE_SYMBOL for our own libraries.
Also distinguish between static and shared build for DEFINE_SYMBOL.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/presentation3/cmake/TargetUtilities.cmake

    r7132 r7135  
    4747 #      SOURCE_FILES:      Source files for the target
    4848 #      DEFINE_SYMBOL:     Sets the DEFINE_SYMBOL target property
     49 #                         Usage: DEFINE_SYMBOL static "symbol" shared "symbol2"
     50 #                         (or shared "symbol2" static "symbol")
    4951 #      TOLUA_FILES:       Files with tolua interface
    5052 #      PCH_FILE:          Precompiled header file
     
    225227  # DEFINE_SYMBOL
    226228  IF(_arg_DEFINE_SYMBOL)
    227     SET_TARGET_PROPERTIES(${_target_name} PROPERTIES DEFINE_SYMBOL ${_arg_DEFINE_SYMBOL})
     229    # Format is: static "static_symbol" shared "shared_symbol"
     230    # but the order doesn't matter
     231    LIST(LENGTH _arg_DEFINE_SYMBOL _define_symbol_length)
     232    IF (_define_symbol_length LESS 2)
     233      MESSAGE(FATAL_ERROR "Number of expected arguments for DEFINE_SYMBOL is at least 2: static \"STATIC_SYMBOL\" shared \"SHARED_SYMBOL\"")
     234    ENDIF()
     235    STRING(TOLOWER "${_arg_STATIC}${_arg_SHARED}" _static_shared_lower)
     236    LIST(FIND _arg_DEFINE_SYMBOL ${_static_shared_lower} _symbol_definition_index)
     237    MATH(EXPR _symbol_definition_index "${_symbol_definition_index} + 1")
     238    IF(_symbol_definition_index LESS _define_symbol_length)
     239      LIST(GET _arg_DEFINE_SYMBOL ${_symbol_definition_index} _symbol_definition)
     240      SET_TARGET_PROPERTIES(${_target_name} PROPERTIES DEFINE_SYMBOL ${_symbol_definition})
     241    ENDIF()
     242  ELSEIF(NOT _arg_ORXONOX_EXTERNAL)
     243    # Automatically add the macro definitions for our own libraries
     244    SET_TARGET_PROPERTIES(${_target_name} PROPERTIES DEFINE_SYMBOL "${_target_name_upper}_${_arg_STATIC}${_arg_SHARED}_BUILD")
    228245  ENDIF()
    229246
Note: See TracChangeset for help on using the changeset viewer.