Cross platform support dev

This commit is contained in:
pigreco
2025-09-10 23:43:32 +02:00
parent 014753c46d
commit 7222f830e8
5 changed files with 48 additions and 35 deletions

View File

@@ -1,23 +1,23 @@
project(AuthServer LANGUAGES CXX)
add_executable(AuthServer
AuthServerMain.cpp
src/AuthServer.cpp
src/AuthSession.cpp
src/DbPlayerInfo.cpp
file(GLOB_RECURSE AUTH_SOURCES CONFIGURE_DEPENDS
${CMAKE_CURRENT_LIST_DIR}/*.cpp
)
add_executable(AuthServer
${AUTH_SOURCES}
)
target_include_directories(AuthServer PRIVATE ${CMAKE_CURRENT_LIST_DIR}/include)
target_include_directories(AuthServer PUBLIC ${CMAKE_CURRENT_LIST_DIR}/include)
target_link_libraries(AuthServer PRIVATE
target_link_libraries(AuthServer PUBLIC
Common
unofficial::mariadb-connector-cpp::mariadbcpp
)
if (WIN32)
target_link_libraries(AuthServer PRIVATE wsock32 ws2_32)
target_link_libraries(AuthServer PUBLIC wsock32 ws2_32)
endif()

View File

@@ -5,19 +5,19 @@ set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if (WIN32)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_WIN32_WINNT=0x0601 -Wa,-mbig-obj")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--allow-multiple-definition")
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS}")
else()
set(CMAKE_EXECUTABLE_SUFFIX ".elf")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wa,-mbig-obj")
set(CMAKE_EXE_LINKER_FLAGS
"${CMAKE_EXE_LINKER_FLAGS} -Wl,--allow-multiple-definition -Wl,-rpath=. -Wl,-rpath=/data/data/com.termux/files/usr/lib -Wl,--enable-new-dtags"
)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/Output)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/Output)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/Output)
endif()
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/Output)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/Output)
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/Output)
find_package(Boost 1.73.0 REQUIRED COMPONENTS system json beast asio)
find_package(OpenSSL REQUIRED)
find_package(cryptopp CONFIG REQUIRED)
@@ -29,4 +29,3 @@ add_subdirectory(Common)
add_subdirectory(AuthServer)
add_subdirectory(CastServer)
add_subdirectory(MainServer)

View File

@@ -2,7 +2,7 @@ project(CastServer LANGUAGES CXX)
file(GLOB_RECURSE CAST_SOURCES CONFIGURE_DEPENDS
${CMAKE_CURRENT_LIST_DIR}/src/*.cpp
${CMAKE_CURRENT_LIST_DIR}/*.cpp
)
add_executable(CastServer
@@ -10,24 +10,23 @@ add_executable(CastServer
)
target_include_directories(CastServer PRIVATE
target_include_directories(CastServer PUBLIC
${CMAKE_CURRENT_LIST_DIR}/include
)
find_package(directxmath CONFIG REQUIRED)
target_link_libraries(CastServer
PRIVATE
PUBLIC
Common
Boost::system
)
if (WIN32)
target_link_libraries(CastServer PRIVATE wsock32 ws2_32)
target_link_libraries(CastServer PUBLIC wsock32 ws2_32)
endif()
# Output binary at repo root
set_target_properties(CastServer PROPERTIES
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}
)

View File

@@ -1,14 +1,33 @@
project(Common LANGUAGES CXX)
file(GLOB_RECURSE COMMON_SOURCES CONFIGURE_DEPENDS
${CMAKE_CURRENT_LIST_DIR}/src/*.cpp
${CMAKE_CURRENT_LIST_DIR}/*.cpp
)
add_library(Common STATIC
Common.cpp
${COMMON_SOURCES}
)
set_target_properties(Common PROPERTIES
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/ExternalLibraries/CommonLib
ARCHIVE_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/ExternalLibraries/CommonLib
ARCHIVE_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/ExternalLibraries/CommonLib
ARCHIVE_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_SOURCE_DIR}/ExternalLibraries/CommonLib
ARCHIVE_OUTPUT_DIRECTORY_MINSIZEREL ${CMAKE_SOURCE_DIR}/ExternalLibraries/CommonLib
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/ExternalLibraries/CommonLib
LIBRARY_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/ExternalLibraries/CommonLib
LIBRARY_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/ExternalLibraries/CommonLib
LIBRARY_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_SOURCE_DIR}/ExternalLibraries/CommonLib
LIBRARY_OUTPUT_DIRECTORY_MINSIZEREL ${CMAKE_SOURCE_DIR}/ExternalLibraries/CommonLib
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/ExternalLibraries/CommonLib
RUNTIME_OUTPUT_DIRECTORY_DEBUG ${CMAKE_SOURCE_DIR}/ExternalLibraries/CommonLib
RUNTIME_OUTPUT_DIRECTORY_RELEASE ${CMAKE_SOURCE_DIR}/ExternalLibraries/CommonLib
RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO ${CMAKE_SOURCE_DIR}/ExternalLibraries/CommonLib
RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL ${CMAKE_SOURCE_DIR}/ExternalLibraries/CommonLib
)
target_include_directories(Common
PUBLIC
${CMAKE_CURRENT_LIST_DIR}
@@ -17,14 +36,12 @@ target_include_directories(Common
${CMAKE_SOURCE_DIR}/Common/include/Utils
)
target_link_libraries(Common
PRIVATE
PUBLIC
cryptopp::cryptopp
unofficial::mariadb-connector-cpp::mariadbcpp
)
if (WIN32)
target_link_libraries(Common PRIVATE wsock32 ws2_32)
target_link_libraries(Common PUBLIC wsock32 ws2_32)
endif()

View File

@@ -1,11 +1,9 @@
project(MainServer LANGUAGES CXX)
file(GLOB_RECURSE MAIN_SOURCES CONFIGURE_DEPENDS
${CMAKE_CURRENT_LIST_DIR}/src/*.cpp
${CMAKE_CURRENT_LIST_DIR}/*.cpp
)
add_compile_options(-Wbuiltin-macro-redefined)
add_executable(MainServer
${MAIN_SOURCES}
@@ -17,10 +15,10 @@ target_include_directories(MainServer
)
find_path(JWT_CPP_INCLUDE_DIRS "jwt-cpp/base.h")
target_include_directories(MainServer PRIVATE ${JWT_CPP_INCLUDE_DIRS})
target_include_directories(MainServer PUBLIC ${JWT_CPP_INCLUDE_DIRS})
target_link_libraries(MainServer
PRIVATE
PUBLIC
Common
unofficial::mariadb-connector-cpp::mariadbcpp
OpenSSL::SSL
@@ -31,13 +29,13 @@ target_link_libraries(MainServer
)
if (WIN32)
target_link_libraries(MainServer PRIVATE wsock32 ws2_32)
target_link_libraries(MainServer PUBLIC wsock32 ws2_32)
endif()
if (MSVC)
target_compile_options(MainServer PRIVATE /W0)
target_compile_options(MainServer PUBLIC /W0)
else()
target_compile_options(MainServer PRIVATE -w)
target_compile_options(MainServer PUBLIC -w)
endif()
set_target_properties(MainServer PROPERTIES