Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Aug 24, 2009, 1:57:27 PM (15 years ago)
Author:
rgrieder
Message:

Merged revision 5610 to resource3:
Improved CMake performance for runs after the first one.
There are some optimisations in the macro argument parser and I manually added the header files for util and network (since they don't change too much and it still compiles with a missing header files).

Location:
code/branches/resource3
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • code/branches/resource3/cmake/ParseMacroArguments.cmake

    r3196 r5676  
    3636
    3737MACRO(PARSE_MACRO_ARGUMENTS _switches _list_names)
     38
     39  # Using LIST(FIND ...) speeds up the process
     40  SET(_keywords ${_switches} ${_list_names})
     41
    3842  # Parse all the arguments and set the corresponding variable
    3943  # If the option is just a switch, set the variable to its name for later use
    4044  FOREACH(_arg ${ARGN})
    41     SET(_arg_found FALSE)
    4245
    43     # Switches
    44     FOREACH(_switch ${_switches})
    45       IF(${_switch} STREQUAL ${_arg})
    46         SET(_arg_${_switch} ${_switch})
    47         SET(_arg_found TRUE)
    48         # Avoid interpreting arguments after this one as options args for the previous one
    49         SET(_storage_var)
    50         BREAK()
    51       ENDIF()
    52     ENDFOREACH(_switch)
     46    # Is the argument a keyword?
     47    LIST(FIND _keywords ${_arg} _keyword_index)
     48    IF(NOT _keyword_index EQUAL -1)
    5349
    54     # Input options
    55     IF(NOT _arg_found)
    56       FOREACH(_list_name ${_list_names})
    57         IF(${_list_name} STREQUAL ${_arg})
    58           SET(_storage_var _arg_${_list_name})
    59           SET(_arg_found TRUE)
     50      # Another optimisation
     51      SET(_arg_found FALSE)
     52      # Switches
     53      FOREACH(_switch ${_switches})
     54        IF(${_switch} STREQUAL ${_arg})
     55          SET(_arg_${_switch} ${_switch})
     56          SET(_arg_found TRUE)
     57          # Avoid interpreting arguments after this one as options args for the previous one
     58          SET(_storage_var)
    6059          BREAK()
    6160        ENDIF()
    62       ENDFOREACH(_list_name)
    63     ENDIF(NOT _arg_found)
     61      ENDFOREACH(_switch)
    6462
    65     # Arguments of an input option (like source files for SOURCE_FILES)
    66     IF(NOT _arg_found)
     63      # Input options
     64      IF(NOT _arg_found)
     65        FOREACH(_list_name ${_list_names})
     66          IF(${_list_name} STREQUAL ${_arg})
     67            SET(_storage_var _arg_${_list_name})
     68            BREAK()
     69          ENDIF()
     70        ENDFOREACH(_list_name)
     71      ENDIF(NOT _arg_found)
     72
     73    ELSE()
     74
     75      # Arguments of an input option (like source files for SOURCE_FILES)
    6776      IF(_storage_var)
    6877        # Store in variable define above in the foreach loop
     
    7180        MESSAGE(FATAL_ERROR "ORXONOX_ADD_${_target_type} was given a non compliant argument: ${_arg}")
    7281      ENDIF(_storage_var)
    73     ENDIF(NOT _arg_found)
     82
     83    ENDIF()
    7484
    7585  ENDFOREACH(_arg)
  • code/branches/resource3/src/network/CMakeLists.txt

    r3304 r5676  
    3535  TrafficControl.cc
    3636)
     37
     38SET_SOURCE_FILES(NETWORK_HDR_FILES
     39  ChatListener.h
     40  Client.h
     41  ClientConnection.h
     42  ClientConnectionListener.h
     43  ClientInformation.h
     44  Connection.h
     45  FunctionCallManager.h
     46  GamestateClient.h
     47  GamestateHandler.h
     48  GamestateManager.h
     49  Host.h
     50  NetworkFunction.h
     51  NetworkPrecompiledHeaders.h
     52  NetworkPrereqs.h
     53  Server.h
     54  ServerConnection.h
     55  TrafficControl.h
     56)
     57
    3758ADD_SUBDIRECTORY(packet)
    3859ADD_SUBDIRECTORY(synchronisable)
    3960
    4061ORXONOX_ADD_LIBRARY(network
    41   FIND_HEADER_FILES
    4262  DEFINE_SYMBOL
    4363    "NETWORK_SHARED_BUILD"
     
    5171    core
    5272  SOURCE_FILES
    53     ${NETWORK_SRC_FILES}
     73    ${NETWORK_SRC_FILES} ${NETWORK_HDR_FILES}
    5474)
  • code/branches/resource3/src/network/packet/CMakeLists.txt

    r3084 r5676  
    11ADD_SOURCE_FILES(NETWORK_SRC_FILES
    2   Packet.cc
    32  Acknowledgement.cc
    43  Chat.cc
     
    87  FunctionCalls.cc
    98  Gamestate.cc
     9  Packet.cc
    1010  Welcome.cc
    1111)
     12
     13ADD_SOURCE_FILES(NETWORK_HDR_FILES
     14  Acknowledgement.h
     15  Chat.cc
     16  Chat.h
     17  ClassID.h
     18  DeleteObjects.h
     19  FunctionCalls.h
     20  FunctionIDs.h
     21  Gamestate.h
     22  Packet.h
     23  Welcome.h
     24)
  • code/branches/resource3/src/network/synchronisable/CMakeLists.txt

    r2710 r5676  
    55  SynchronisableVariable.cc
    66)
     7
     8ADD_SOURCE_FILES(NETWORK_HDR_FILES
     9  NetworkCallback.h
     10  NetworkCallbackManager.h
     11  Synchronisable.h
     12  SynchronisableVariable.h
     13)
  • code/branches/resource3/src/util/CMakeLists.txt

    r3280 r5676  
    3333)
    3434
     35SET_SOURCE_FILES(UTIL_HDR_FILES
     36  CRC32.h
     37  Clipboard.h
     38  Convert.h
     39  Debug.h
     40  Exception.h
     41  ExprParser.h
     42  Math.h
     43  MathConvert.h
     44  mbool.h
     45  MultiType.h
     46  MultiTypeValue.h
     47  OgreForwardRefs.h
     48  OrxAssert.h
     49  OrxEnum.h
     50  OutputBuffer.h
     51  OutputHandler.h
     52  RefToValue.h
     53  ScopeGuard.h
     54  Serialise.h
     55  SignalHandler.h
     56  Singleton.h
     57  Sleep.h
     58  StringUtils.h
     59  SubString.h
     60  TemplateUtils.h
     61  TypeTraits.h
     62  UTFStringConversions.h
     63  UtilPrereqs.h
     64)
     65
    3566IF(GCC_NO_SYSTEM_HEADER_SUPPORT)
    3667  # Get around displaying a few hundred lines of warning code
     
    3970
    4071ORXONOX_ADD_LIBRARY(util
    41   FIND_HEADER_FILES
    4272  DEFINE_SYMBOL
    4373    "UTIL_SHARED_BUILD"
     
    4575    ${OGRE_LIBRARY}
    4676  SOURCE_FILES
    47     ${UTIL_SRC_FILES}
     77    ${UTIL_SRC_FILES} ${UTIL_HDR_FILES}
    4878)
Note: See TracChangeset for help on using the changeset viewer.