| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110 |
- #This file includes the global macros for the RakNet CMake files
- #
- # This file was taken from RakNet 4.082.
- # Please see licenses/RakNet license.txt for the underlying license and related copyright.
- #
- #
- # Modified work: Copyright (c) 2017, SLikeSoft UG (haftungsbeschränkt)
- #
- # This source code was modified by SLikeSoft. Modifications are licensed under the MIT-style
- # license found in the license.txt file in the root directory of this source tree.
- #
- MACRO(STANDARDSUBPROJECT PROJECTNAME)#Many of the projects just need the cpp files compiled and the header added to the project, this avoids repeating code
- project(${PROJECTNAME})
- FILE(GLOB ALL_CPP_SRCS *.cpp)
- FILE(GLOB ALL_HEADER_SRCS *.h)
- include_directories(${RAKNETHEADERFILES} ./)
- FIXCOMPILEOPTIONS()
- add_executable(${PROJECTNAME} ${ALL_CPP_SRCS} ${ALL_HEADER_SRCS})
- target_link_libraries(${PROJECTNAME} ${RAKNET_COMMON_LIBS})
- set_target_properties(${PROJECTNAME} PROPERTIES PROJECT_GROUP Samples)
- ENDMACRO(STANDARDSUBPROJECT)
- MACRO(STANDARDSUBPROJECTWITHOPTIONS PROJECTNAME EXTRAINCLUDES EXTRASOURCES EXTRALIBS)#Same as STANDARDSUBPROJECT but allows options changing
- project(${PROJECTNAME})
- FILE(GLOB ALL_CPP_SRCS *.cpp)
- FILE(GLOB ALL_HEADER_SRCS *.h)
- FIXCOMPILEOPTIONS()
- include_directories(${RAKNETHEADERFILES} ./ ${EXTRAINCLUDES})
- add_executable(${PROJECTNAME} ${ALL_CPP_SRCS} ${ALL_HEADER_SRCS} ${EXTRASOURCES})
- target_link_libraries(${PROJECTNAME} ${RAKNET_COMMON_LIBS} ${EXTRALIBS})
- set_target_properties(${PROJECTNAME} PROPERTIES PROJECT_GROUP Samples)
- ENDMACRO(STANDARDSUBPROJECTWITHOPTIONS)
- MACRO(STANDARDSUBPROJECTWITHOPTIONSSET PROJECTNAME)#Same as STANDARDSUBPROJECT but allows options changing, Items are passed by setting them for times when passing variable to the macro doesn't work
- project(${PROJECTNAME})
- FILE(GLOB ALL_CPP_SRCS *.cpp)
- FILE(GLOB ALL_HEADER_SRCS *.h)
- FIXCOMPILEOPTIONS()
- include_directories(${RAKNETHEADERFILES} ./ ${EXTRAINCLUDES})
- add_executable(${PROJECTNAME} ${ALL_CPP_SRCS} ${ALL_HEADER_SRCS} ${EXTRASOURCES})
- target_link_libraries(${PROJECTNAME} ${RAKNET_COMMON_LIBS} ${EXTRALIBS})
- set_target_properties(${PROJECTNAME} PROPERTIES PROJECT_GROUP Samples)
- ENDMACRO(STANDARDSUBPROJECTWITHOPTIONSSET)
- MACRO(STANDARDCSUBPROJECT PROJECTNAME)#Same as STANDARDSUBPROJECT but for C files
- project(${PROJECTNAME})
- FILE(GLOB ALL_C_SRCS *.c)
- FILE(GLOB ALL_HEADER_SRCS *.h)
- include_directories(${RAKNETHEADERFILES} ./)
- FIXCOMPILEOPTIONS()
- add_executable(${PROJECTNAME} ${ALL_C_SRCS} ${ALL_HEADER_SRCS})
- target_link_libraries(${PROJECTNAME} ${RAKNET_COMMON_LIBS})
- set_target_properties(${PROJECTNAME} PROPERTIES PROJECT_GROUP Samples)
- ENDMACRO(STANDARDCSUBPROJECT)
- MACRO(GETCURRENTFOLDER)#Gets the current foldername without the path
- string(REGEX REPLACE
- ".+/(.?)"
- "\\1"
- current_folder "${CMAKE_CURRENT_SOURCE_DIR}")
- ENDMACRO(GETCURRENTFOLDER)
- MACRO(VSUBFOLDER PROJECTNAME FOLDERNAME)#A macro interface for adding solution folders with a patched cmake
- set_target_properties(${PROJECTNAME} PROPERTIES PROJECT_GROUP ${FOLDERNAME})
- ENDMACRO(VSUBFOLDER)
- MACRO(STANDARDNOTFOUNDMESSAGE NAME PLIBRARIES PINCLUDES EXTRA_INFORMATION)#If the libraries are not found, what to display
- message(STATUS "${NAME} was not found, paths were set to:\nLibrary: ${PLIBRARIES}\nInclude: ${PINCLUDES}\n${EXTRA_INFORMATION}The project will not compile unless installed to those locations.\nAs an alternative you can install the libraries and rerun cmake\n and see if the autosearch finds them")
- ENDMACRO(STANDARDNOTFOUNDMESSAGE)
- MACRO(ADDCPPDEF DEF)#Currently replaces CXX flags with a define for WIN32 projects, may be changed
- IF(WIN32)
- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D ${DEF}")
- ENDIF()
- ENDMACRO(ADDCPPDEF)
- MACRO(FIXCOMPILEOPTIONS)#Fix added compile options that may cause problems, also fix warnings
- IF(NOT ${CMAKE_GENERATOR} STREQUAL "MSYS Makefiles")
- IF(WIN32 AND NOT UNIX)
- STRING(REGEX REPLACE "/Z[0-9a-zA-Z]+" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
- STRING(REGEX REPLACE "/Z[0-9a-zA-Z]+" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
- ADDCPPDEF(_CRT_SECURE_NO_DEPRECATE)
- ADDCPPDEF(_CRT_NONSTDC_NO_DEPRECATE)
- SET(CMAKE_CXX_WARNING_LEVEL 0)
- IF(CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
- STRING(REGEX REPLACE "/W[0-4]" "/W0" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
- ELSE(CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W0")
- ENDIF(CMAKE_CXX_FLAGS MATCHES "/W[0-4]")
- SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -w")# -nowarn 4018 -nowarn 4305 -nowarn 4244")
- ENDIF(WIN32 AND NOT UNIX)
- ENDIF(NOT ${CMAKE_GENERATOR} STREQUAL "MSYS Makefiles")
- ENDMACRO(FIXCOMPILEOPTIONS)
- MACRO(FIXLINKOPTIONS)#Fix added link options that may cause problems
- IF(WIN32 AND NOT UNIX)
- IF(NOT ${CMAKE_GENERATOR} STREQUAL "MSYS Makefiles")
- STRING(REGEX REPLACE "/STACK:[0-9]+" "" CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
- STRING(REGEX REPLACE "/STACK:[0-9]+" "" CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
- STRING(REGEX REPLACE "/machine:[0-9a-zA-Z]+" "" CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
- STRING(REGEX REPLACE "/machine:[0-9a-zA-Z]+" "" CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS}")
- ENDIF(NOT ${CMAKE_GENERATOR} STREQUAL "MSYS Makefiles")
- ENDIF(WIN32 AND NOT UNIX)
- ENDMACRO(FIXLINKOPTIONS)
- #include(${RakNet_SOURCE_DIR}/CmakeIncludes/FindMacros.txt)#The macros for setting variables and performing finds
|