mirror of
https://github.com/TES3MP/openmw-tes3mp.git
synced 2025-07-06 11:21:34 +00:00
Feat(cmake): Awful hack to build & include raknet during normal cmake operation
This commit is contained in:
parent
8d9c8907f3
commit
8b420827bc
1 changed files with 56 additions and 39 deletions
|
@ -32,51 +32,68 @@ FIND_LIBRARY (RakNet_LIBRARY_DEBUG NAMES RakNetLibStaticd
|
|||
$ENV{RAKNET_ROOT}/lib
|
||||
$ENV{RAKNET_ROOT}/build/lib/Debug
|
||||
${RAKNET_ROOT}/build/lib/Debug
|
||||
)
|
||||
|
||||
${CMAKE_SOURCE_DIR}/extern/raknet/lib/
|
||||
${CMAKE_SOURCE_DIR}/extern/raknet/build/lib
|
||||
${CMAKE_SOURCE_DIR}/extern/raknet/Debug/lib/
|
||||
${CMAKE_SOURCE_DIR}/extern/raknet/build/Debug/lib/
|
||||
)
|
||||
|
||||
|
||||
set(RakNet_LIBRARY_DEBUG ${CMAKE_SOURCE_DIR}/extern/raknet/lib/libRakNetLibStaticd.a)
|
||||
set(RakNet_LIBRARY_RELEASE ${CMAKE_SOURCE_DIR}/extern/raknet/lib/libRakNetLibStatic.a)
|
||||
|
||||
|
||||
|
||||
FIND_PATH (RakNet_INCLUDES raknet/RakPeer.h
|
||||
ENV CPATH
|
||||
/usr/include
|
||||
/usr/local/include
|
||||
/opt/local/include
|
||||
$ENV{RAKNET_ROOT}/include
|
||||
${RAKNET_ROOT}/include
|
||||
)
|
||||
FIND_PATH (RakNet_INCLUDES raknet/RakPeer.h ${CMAKE_SOURCE_DIR}/extern/raknet/include)
|
||||
|
||||
MESSAGE(STATUS ${RakNet_INCLUDES})
|
||||
MESSAGE(STATUS ${RakNet_LIBRARY_RELEASE})
|
||||
|
||||
IF(RakNet_INCLUDES AND RakNet_LIBRARY_RELEASE)
|
||||
MESSAGE(STATUS ${RakNet_LIBRARY_DEBUG})
|
||||
|
||||
IF(RakNet_INCLUDES)
|
||||
SET(RakNet_FOUND TRUE)
|
||||
ENDIF(RakNet_INCLUDES AND RakNet_LIBRARY_RELEASE)
|
||||
ENDIF(RakNet_INCLUDES)
|
||||
|
||||
IF(RakNet_FOUND)
|
||||
SET(RakNet_INCLUDES ${RakNet_INCLUDES}/raknet)
|
||||
|
||||
|
||||
IF (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
|
||||
SET(RakNet_LIBRARY optimized ${RakNet_LIBRARY_RELEASE} debug ${RakNet_LIBRARY_DEBUG})
|
||||
IF(WIN32)
|
||||
SET(RakNet_LIBRARY optimized ${RakNet_LIBRARY_RELEASE} debug ${RakNet_LIBRARY_DEBUG} ws2_32.lib)
|
||||
ENDIF(WIN32)
|
||||
ELSE()
|
||||
# if there are no configuration types and CMAKE_BUILD_TYPE has no value
|
||||
# then just use the release libraries
|
||||
SET(RakNet_LIBRARY ${RakNet_LIBRARY_RELEASE} )
|
||||
IF(WIN32)
|
||||
SET(RakNet_LIBRARY ${RakNet_LIBRARY_RELEASE} ws2_32.lib)
|
||||
ENDIF(WIN32)
|
||||
ENDIF()
|
||||
|
||||
IF(NOT RakNet_FIND_QUIETLY)
|
||||
MESSAGE(STATUS "Found RakNet_LIBRARY_RELEASE: ${RakNet_LIBRARY_RELEASE}")
|
||||
MESSAGE(STATUS "Found RakNet_INCLUDES: ${RakNet_INCLUDES}")
|
||||
ENDIF(NOT RakNet_FIND_QUIETLY)
|
||||
ELSE(RakNet_FOUND)
|
||||
IF(NOT RakNet_FOUND)
|
||||
IF(RakNet_FIND_REQUIRED)
|
||||
MESSAGE(FATAL_ERROR "Could not find RakNet")
|
||||
ENDIF(RakNet_FIND_REQUIRED)
|
||||
ENDIF(RakNet_FOUND)
|
||||
MESSAGE(STATUS "Could not find RakNet, building from local copy")
|
||||
|
||||
find_package(Git QUIET)
|
||||
|
||||
if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git")
|
||||
# Update submodules as needed
|
||||
option(GIT_SUBMODULE "Check submodules during build" ON)
|
||||
if(GIT_SUBMODULE)
|
||||
message(STATUS "Submodule update")
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/extern/raknet
|
||||
RESULT_VARIABLE GIT_SUBMOD_RESULT)
|
||||
if(NOT GIT_SUBMOD_RESULT EQUAL "0")
|
||||
message(FATAL_ERROR "git submodule update --init --recursive failed with ${GIT_SUBMOD_RESULT}, please checkout submodules")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT EXISTS "${PROJECT_SOURCE_DIR}/extern/raknet/CMakeLists.txt")
|
||||
message(FATAL_ERROR "The submodules were not downloaded! GIT_SUBMODULE was turned off or failed. Please update submodules and try again.")
|
||||
endif()
|
||||
ENDIF(RakNet_FIND_REQUIRED)
|
||||
ENDIF(NOT RakNet_FOUND)
|
||||
|
||||
add_subdirectory(extern/raknet)
|
||||
|
||||
SET(RakNet_INCLUDES ${RakNet_INCLUDES}/raknet)
|
||||
|
||||
IF (CMAKE_CONFIGURATION_TYPES OR CMAKE_BUILD_TYPE)
|
||||
SET(RakNet_LIBRARY optimized ${RakNet_LIBRARY_RELEASE} debug ${RakNet_LIBRARY_DEBUG})
|
||||
IF(WIN32)
|
||||
SET(RakNet_LIBRARY optimized ${RakNet_LIBRARY_RELEASE} debug ${RakNet_LIBRARY_DEBUG} ws2_32.lib)
|
||||
ENDIF(WIN32)
|
||||
ELSE()
|
||||
# if there are no configuration types and CMAKE_BUILD_TYPE has no value
|
||||
# then just use the release libraries
|
||||
SET(RakNet_LIBRARY ${RakNet_LIBRARY_RELEASE} )
|
||||
IF(WIN32)
|
||||
SET(RakNet_LIBRARY ${RakNet_LIBRARY_RELEASE} ws2_32.lib)
|
||||
ENDIF(WIN32)
|
||||
ENDIF()
|
Loading…
Reference in a new issue