# cmake for irrnet, ottona, 2022-04-27 cmake_minimum_required(VERSION 3.10) option(OP_COMPILE_WITH_IRRLICHT "compile irrnet with native irrlicht datatypes" ON) set(CMAKE_CXX_STANDARD 11) set(CMAKE_CXX_STANDARD_REQUIRED ON) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_LIST_DIR}/lib") set(LIBRARY_OUTPUT_DIRECTORY ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) #irrnet stuff set(IRRNET_TARGET irrnet) set(IRRNET_SRC_DIR "${CMAKE_CURRENT_LIST_DIR}/source") set(IRRNET_INC_DIR "${CMAKE_CURRENT_LIST_DIR}/include") #enet stuff set(ENET_TARGET enet) set(ENET_DIR "${CMAKE_CURRENT_LIST_DIR}/enet") set(ENET_INC_DIR ${ENET_DIR}/include) add_subdirectory(${ENET_DIR} EXCLUDE_FROM_ALL) #zlib stuff set(ZLIB_TARGET zlibstatic) set(ZLIB_DIR "${CMAKE_CURRENT_LIST_DIR}/zlib") set(ZLIB_INC_DIR ${ZLIB_DIR}) set(ZLIB_CONF_DIR ${CMAKE_CURRENT_BINARY_DIR}/zlib) add_subdirectory(${ZLIB_DIR} EXCLUDE_FROM_ALL) #irrlicht stuff if (NOT IRRLICHT_INC_DIR) set(IRRLICHT_INC_DIR /usr/include/irrlicht) endif() project(irrnet) add_library(${IRRNET_TARGET} STATIC ${IRRNET_INC_DIR}/CEncryption.h ${IRRNET_INC_DIR}/CNetManager.h ${IRRNET_INC_DIR}/INetManager.h ${IRRNET_INC_DIR}/irrNet.h ${IRRNET_INC_DIR}/SPacket.h ${IRRNET_SRC_DIR}/CNetManager.cpp ${IRRNET_SRC_DIR}/SPacket.cpp ) if (OP_COMPILE_WITH_IRRLICHT) message(STATUS "compile with native irrlicht") add_definitions(-DCOMPILE_WITH_IRRLICHT) message(STATUS "irrlicht dir: " ${IRRLICHT_INC_DIR}) target_include_directories(${IRRNET_TARGET} PUBLIC ${IRRLICHT_INC_DIR}) endif() target_link_libraries(${IRRNET_TARGET} ${ZLIB_TARGET} ${ENET_TARGET}) target_include_directories(${IRRNET_TARGET} PUBLIC ${IRRNET_INC_DIR} ${ENET_INC_DIR} ${ZLIB_INC_DIR}) message(STATUS "conf dir" ${ZLIB_CONF_DIR}) target_include_directories(${IRRNET_TARGET} PRIVATE ${ZLIB_CONF_DIR})