Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Jan 29, 2009, 11:35:54 PM (15 years ago)
Author:
rgrieder
Message:

This commit gets a little ugly, couldn't separate that anymore:

  • Renamed UseTolua.cmake to GenerateLuaBindings.cmake
  • Applied the macros for compiler flags, linker flags, header files and source groups Updated the whole build tree for that
  • Created real compiler config scripts (BuildConfigGCC.cmake and BuildConfigMSVC.cmake)
  • Large scale clean up in BuildConfig.cmake
  • You can now specify your own LibraryConfig and BuildConfig script via CMake Cache
  • Lots of small changes and fixes
File:
1 edited

Legend:

Unmodified
Added
Removed
  • code/branches/buildsystem2/cmake/BuildConfigMSVC.cmake

    r2612 r2621  
    2525 #      ...
    2626 #
    27  
    28 ###################### MSVC config ########################
    29 # Set the library directories and special options when
    30 # using Visual Studio.
    31 ###########################################################
    3227
    33 IF (MSVC)
     28#################### Compiler Flags #####################
    3429
    35   #################### Compiler Flags #####################
     30# -MD    Minimal Rebuild
     31# -RTC1  Both basic runtime checks
     32# -MD[d] Multithreaded [debug] DLL
     33# -Zi    Program Database
     34# -ZI    Program Database for Edit & Continue
     35# -WX    General warning Level X
     36# -wdX   Disable specific warning X
     37# -wnX   Set warning level of specific warning X to level n
    3638
    37   # /MD    Minimal Rebuild
    38   # /RTC1  Both basic runtime checks
    39   # /MD[d] Multithreaded [debug] DLL
    40   # /Zi    Program Database
    41   # /ZI    Program Database for Edit & Continue
    42   # /WX    Warning Level X
    43   # /wdX   Disable specific warning X
    44   SET(MSVC_CL_FLAGS "
    45     /D WIN32 /D __WIN32__ /D _WIN32 /D _WINDOWS
    46     /D BOOST_ALL_DYN_LINK
    47     /D OIS_DYNAMIC_LIB
    48     /D ZLIB_WINAPI
    49     /D LUA_BUILD_AS_DLL
    50     /D _CRT_SECURE_NO_WARNINGS
    51     /W3
    52     /EHsc
    53     /wd4522
    54     /wd4251
    55     /wd4800
    56   ")
    57   SET(CMAKE_C_FLAGS                  "${MSVC_CL_FLAGS}")
    58   SET(CMAKE_CXX_FLAGS                "${MSVC_CL_FLAGS}")
     39# Overwrite CMake default flags first. Be careful with this
     40# Only add (not set) the general compiler flags.
     41# CMake default flags : -DWIN32 -D_WINDOWS -W3 -Zm1000
     42# additionally for CXX: -EHsc -GR
     43ADD_COMPILER_FLAGS("-D__WIN32__ -D_WIN32"      CACHE)
     44ADD_COMPILER_FLAGS("-D_CRT_SECURE_NO_WARNINGS" CACHE)
     45ADD_COMPILER_FLAGS("-DUNICODE -D_UNICODE"      CACHE)
     46ADD_COMPILER_FLAGS("-w44522 -w44251 -w44800"   CACHE)
    5947
    60   # Note: ${CMAKE_C_FLAGS} get added to the specific ones
    61   SET(MSVC_CL_FLAGS_DEBUG            "/MDd /Od  /Zi /Gm /RTC1")
    62   SET(MSVC_CL_FLAGS_RELEASE          "/MD  /MP2 /D TOLUA_RELEASE")
    63   SET(CMAKE_C_FLAGS_DEBUG            "${MSVC_CL_FLAGS_DEBUG}")
    64   SET(CMAKE_CXX_FLAGS_DEBUG          "${MSVC_CL_FLAGS_DEBUG}")
    65   SET(CMAKE_C_FLAGS_RELEASE          "${MSVC_CL_FLAGS_RELEASE} /O2")
    66   SET(CMAKE_CXX_FLAGS_RELEASE        "${MSVC_CL_FLAGS_RELEASE} /O2")
    67   SET(CMAKE_C_FLAGS_RELWITHDEBINFO   "${MSVC_CL_FLAGS_RELEASE} /O2 /Zi")
    68   SET(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${MSVC_CL_FLAGS_RELEASE} /O2 /Zi")
    69   SET(CMAKE_C_FLAGS_MINSIZEREL       "${MSVC_CL_FLAGS_RELEASE} /O1")
    70   SET(CMAKE_CXX_FLAGS_MINSIZEREL     "${MSVC_CL_FLAGS_RELEASE} /O1")
     48# Increase warning level if requested
     49IF(EXTRA_WARNINGS)
     50  REMOVE_COMPILER_FLAGS("-W1 -W2 -W3" CACHE)
     51  ADD_COMPILER_FLAGS   ("-W4" CACHE)
     52ELSE(EXTRA_WARNINGS)
     53  REMOVE_COMPILER_FLAGS("-W1 -W2 -W4" CACHE)
     54  ADD_COMPILER_FLAGS   ("-W3" CACHE)
     55ENDIF(EXTRA_WARNINGS)
    7156
    72   ##################### Linker Flags ######################
     57# Overwrite CMake default flags here.
     58SET_COMPILER_FLAGS("-MDd -Od -ZI -D_DEBUG -Gm -RTC1" Debug          CACHE)
     59SET_COMPILER_FLAGS("-MD  -O2     -DNDEBUG -MP2"      Release        CACHE)
     60SET_COMPILER_FLAGS("-MD  -O2 -Zi -DNDEBUG"           RelWithDebInfo CACHE)
     61SET_COMPILER_FLAGS("-MD  -O1     -DNDEBUG -MP2"      MinSizeRel     CACHE)
    7362
    74   SET(MSVC_LINKER_FLAGS                        "")
    75   SET(CMAKE_EXE_LINKER_FLAGS                   "${MSVC_LINKER_FLAGS}")
    76   SET(CMAKE_SHARED_LINKER_FLAGS                "${MSVC_LINKER_FLAGS}")
     63##################### Linker Flags ######################
    7764
    78   # Note: ${CMAKE_EXE_LINKER_FLAGS} get added to the specific ones
    79   SET(MSVC_LINKER_FLAGS_DEBUG                  "/INCREMENTAL:YES")
    80   SET(MSVC_LINKER_FLAGS_RELEASE                "/INCREMENTAL:NO /OPT:REF /OPT:ICF")
    81   SET(CMAKE_EXE_LINKER_FLAGS_DEBUG             "${MSVC_LINKER_FLAGS_DEBUG}")
    82   SET(CMAKE_SHARED_LINKER_FLAGS_DEBUG          "${MSVC_LINKER_FLAGS_DEBUG}")
    83   SET(CMAKE_EXE_LINKER_FLAGS_RELEASE           "${MSVC_LINKER_FLAGS_RELEASE}")
    84   SET(CMAKE_SHARED_LINKER_FLAGS_RELEASE        "${MSVC_LINKER_FLAGS_RELEASE}")
    85   SET(CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO    "${MSVC_LINKER_FLAGS_RELEASE}")
    86   SET(CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO "${MSVC_LINKER_FLAGS_RELEASE}")
    87   SET(CMAKE_EXE_LINKER_FLAGS_MINSIZEREL        "${MSVC_LINKER_FLAGS_RELEASE}")
    88   SET(CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL     "${MSVC_LINKER_FLAGS_RELEASE}")
    89 
    90 ENDIF (MSVC)
     65# CMake default flags: -MANIFEST -STACK:10000000 -machine:I386
     66# and INCREMENTAL and DEBUG for debug versions
     67ADD_LINKER_FLAGS("-OPT:REF -OPT:ICF -OPT:NOWIN98" Release MinSizeRel CACHE)
Note: See TracChangeset for help on using the changeset viewer.