From 23e195be0076bdd73a1876edf7f0aaa725d7510a Mon Sep 17 00:00:00 2001 From: mathis Date: Thu, 19 May 2022 12:51:30 +0200 Subject: [PATCH] CMake for linux & wasm --- .gitignore | 2 + CMakeLists.txt | 21 - OpenGL/CMakeLists.txt | 665 ++++++++++++------------------- OpenGL/src/save/ServerConfig.hpp | 2 +- README.md | 18 + 5 files changed, 285 insertions(+), 423 deletions(-) diff --git a/.gitignore b/.gitignore index ba016c01..73097112 100644 --- a/.gitignore +++ b/.gitignore @@ -12,4 +12,6 @@ CMakeSettings.json .clang-format .vs +.cache CMakeFiles +compile_commands.json \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 30be8570..052e0abe 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -30,27 +30,6 @@ if(${BUILD_TARGET} STREQUAL client) if(${BUILD_PLATFORM} STREQUAL wasm) set(BUILDPATH "${BUILDPATH}/Wasm") - set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS - "-g0 -O3 - -fno-rtti - -Wno-error - -Wno-pthreads-mem-growth - -s WASM=1 - -pthread -s PTHREAD_POOL_SIZE=5 - -s USE_SDL=2 - -s USE_SDL_IMAGE=2 - -s SDL2_IMAGE_FORMATS='[\"png\"]' - -s USE_SDL_GFX=2 - -s USE_FREETYPE=2 - -s ALLOW_MEMORY_GROWTH=1 - -s MAX_WEBGL_VERSION=2 - -s MIN_WEBGL_VERSION=2 - -s FULL_ES2=1 - -s FULL_ES3=1 - -s WEBSOCKET_URL='wss://pi.thissma.fr:55001' - -s WEBSOCKET_SUBPROTOCOL='binary' - --preload-file data --preload-file src -Wno-unused-command-line-argument") - # MESON_ARGS = --prefix=${PWD}/WASM --cross-file=emscripten-crossfile.txt --default-library=static --buildtype=debug --wrap-mode=nofallback else() set(BUILDPATH "${BUILDPATH}/App") diff --git a/OpenGL/CMakeLists.txt b/OpenGL/CMakeLists.txt index 0ee41bb3..be5f2eb8 100644 --- a/OpenGL/CMakeLists.txt +++ b/OpenGL/CMakeLists.txt @@ -1,4 +1,4 @@ -# Add source files +# source files in common set(SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/src/debug/Debug.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/debug/Bench.cpp @@ -46,6 +46,7 @@ set(SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/src/multiplayer/terrain/PendingChunks.cpp ) +# source files for the client if(${BUILD_TARGET} STREQUAL client) message(STATUS "Configuring client cpp files") list(APPEND SOURCE @@ -115,71 +116,66 @@ if(${BUILD_TARGET} STREQUAL client) ${CMAKE_CURRENT_SOURCE_DIR}/src/gl/ResourceManager.cpp ) -else() # server +# source files for the server +else() message(STATUS "Configuring server cpp files") list(APPEND SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/src/Server.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/multiplayer/server/Server.cpp ${CMAKE_CURRENT_SOURCE_DIR}/src/multiplayer/server/Client.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/src/multiplayer/server/UdpServer.cpp ) +endif() - if(${BUILD_PLATFORM} STREQUAL wasm) - list(APPEND SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/src/multiplayer/server/WebSocketServer.cpp) - else() - list(APPEND SOURCE ${CMAKE_CURRENT_SOURCE_DIR}/src/multiplayer/server/UdpServer.cpp) - endif() - +# source files for wasm client +if(${BUILD_PLATFORM} STREQUAL wasm) + message(STATUS "Configuring wasm cpp files") + list(APPEND SOURCE + "${CMAKE_SOURCE_DIR}/Dependencies/EMSFML/src/SFML/Network/IpAddress.cpp" + "${CMAKE_SOURCE_DIR}/Dependencies/EMSFML/src/SFML/Network/Packet.cpp" + "${CMAKE_SOURCE_DIR}/Dependencies/EMSFML/src/SFML/Network/Socket.cpp" + "${CMAKE_SOURCE_DIR}/Dependencies/EMSFML/src/SFML/Network/TcpSocket.cpp" + "${CMAKE_SOURCE_DIR}/Dependencies/EMSFML/src/SFML/Network/UdpSocket.cpp" + "${CMAKE_SOURCE_DIR}/Dependencies/EMSFML/src/SFML/Network/Emscripten/SocketImpl.cpp" + "${CMAKE_SOURCE_DIR}/Dependencies/EMSFML/src/SFML/System/Err.cpp" + "${CMAKE_SOURCE_DIR}/Dependencies/EMSFML/src/SFML/System/Clock.cpp" + "${CMAKE_SOURCE_DIR}/Dependencies/EMSFML/src/SFML/System/Sleep.cpp" + "${CMAKE_SOURCE_DIR}/Dependencies/EMSFML/src/SFML/System/Time.cpp" + "${CMAKE_SOURCE_DIR}/Dependencies/EMSFML/src/SFML/System/Unix/ClockImpl.cpp" + "${CMAKE_SOURCE_DIR}/Dependencies/EMSFML/src/SFML/System/Unix/SleepImpl.cpp" + ) endif() # Define the executable add_executable(${PROJECT_NAME} ${SOURCE}) +# libraries for windows if(NOT UNIX) - cmake_policy(SET CMP0111 NEW) + cmake_policy(SET CMP0111 NEW) # https://cmake.org/cmake/help/latest/policy/CMP0111.html #zlib add_library(zlib SHARED IMPORTED GLOBAL) - set_property(TARGET zlib PROPERTY IMPORTED_IMPLIB_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/zlib/lib/zlib/zlib.lib" - ) - set_property(TARGET zlib PROPERTY IMPORTED_LOCATION_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/zlib/lib/zlib/zlib.dll" - ) - set_property(TARGET zlib PROPERTY IMPORTED_IMPLIB_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/zlib/lib/zlib/zlib.lib" - ) - set_property(TARGET zlib PROPERTY IMPORTED_LOCATION_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/zlib/lib/zlib/zlib.dll" + set_property(TARGET zlib PROPERTY IMPORTED_IMPLIB "${CMAKE_SOURCE_DIR}/Dependencies/zlib/lib/zlib/zlib.lib") + set_property(TARGET zlib PROPERTY IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/Dependencies/zlib/lib/zlib/zlib.dll") + set_property(TARGET zlib PROPERTY INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/Dependencies/zlib/include/zlib") + add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + $ $ ) #glew add_library(glew SHARED IMPORTED GLOBAL) - if(CMAKE_SIZEOF_VOID_P EQUAL 8)# 64 bits - set_property(TARGET glew PROPERTY IMPORTED_IMPLIB_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/GLEW/lib/Release/x64/glew32s.lib" - ) - set_property(TARGET glew PROPERTY IMPORTED_LOCATION_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/GLEW/bin/Release/x64/glew32.dll" - ) - set_property(TARGET glew PROPERTY IMPORTED_IMPLIB_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/GLEW/lib/Release/x64/glew32s.lib" - ) - set_property(TARGET glew PROPERTY IMPORTED_LOCATION_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/GLEW/bin/Release/x64/glew32.dll" - ) + set_property(TARGET zlib PROPERTY INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/Dependencies/GLEW/include") + add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + $ $ + ) + if(CMAKE_SIZEOF_VOID_P EQUAL 8) # 64 bits + set_property(TARGET glew PROPERTY IMPORTED_IMPLIB "${CMAKE_SOURCE_DIR}/Dependencies/GLEW/lib/Release/x64/glew32s.lib") + set_property(TARGET glew PROPERTY IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/Dependencies/GLEW/bin/Release/x64/glew32.dll") else() - set_property(TARGET glew PROPERTY IMPORTED_IMPLIB_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/GLEW/lib/Release/Win32/glew32s.lib" - ) - set_property(TARGET glew PROPERTY IMPORTED_LOCATION_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/GLEW/bin/Release/Win32/glew32s.dll" - ) - set_property(TARGET glew PROPERTY IMPORTED_IMPLIB_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/GLEW/lib/Release/Win32/glew32s.lib" - ) - set_property(TARGET glew PROPERTY IMPORTED_LOCATION_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/GLEW/bin/Release/Win32/glew32s.dll" - ) + set_property(TARGET glew PROPERTY IMPORTED_IMPLIB "${CMAKE_SOURCE_DIR}/Dependencies/GLEW/lib/Release/Win32/glew32s.lib") + set_property(TARGET glew PROPERTY IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/Dependencies/GLEW/bin/Release/Win32/glew32s.dll") endif() #sdl2 @@ -188,98 +184,36 @@ if(NOT UNIX) add_library(SDL2 SHARED IMPORTED GLOBAL) add_library(SDL2main SHARED IMPORTED GLOBAL) add_library(zlib1 SHARED IMPORTED GLOBAL) - if(CMAKE_SIZEOF_VOID_P EQUAL 8)# 64 bits - set_property(TARGET SDL2_image PROPERTY IMPORTED_IMPLIB_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x64/SDL2_image.lib" - ) - set_property(TARGET SDL2 PROPERTY IMPORTED_IMPLIB_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x64/SDL2.lib" - ) - set_property(TARGET SDL2main PROPERTY IMPORTED_IMPLIB_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x64/SDL2main.lib" - ) - - set_property(TARGET libpng16-16 PROPERTY IMPORTED_LOCATION_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x64/libpng16-16.dll" - ) - set_property(TARGET SDL2_image PROPERTY IMPORTED_LOCATION_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x64/SDL2_image.dll" - ) - set_property(TARGET SDL2 PROPERTY IMPORTED_LOCATION_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x64/SDL2.dll" - ) - set_property(TARGET zlib1 PROPERTY IMPORTED_LOCATION_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x64/zlib1.dll" - ) - - set_property(TARGET SDL2_image PROPERTY IMPORTED_IMPLIB_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x64/SDL2_image.lib" - ) - set_property(TARGET SDL2 PROPERTY IMPORTED_IMPLIB_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x64/SDL2.lib" - ) - set_property(TARGET SDL2main PROPERTY IMPORTED_IMPLIB_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x64/SDL2main.lib" - ) - - set_property(TARGET libpng16-16 PROPERTY IMPORTED_LOCATION_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x64/libpng16-16.dll" - ) - set_property(TARGET SDL2_image PROPERTY IMPORTED_LOCATION_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x64/SDL2_image.dll" - ) - set_property(TARGET SDL2 PROPERTY IMPORTED_LOCATION_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x64/SDL2.dll" - ) - set_property(TARGET zlib1 PROPERTY IMPORTED_LOCATION_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x64/zlib1.dll" - ) + add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + $ $ + ) + add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + $ $ + ) + add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_if_different + $ $ + ) + if(CMAKE_SIZEOF_VOID_P EQUAL 8) # 64 bits + set_property(TARGET SDL2_image PROPERTY IMPORTED_IMPLIB "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x64/SDL2_image.lib") + set_property(TARGET SDL2 PROPERTY IMPORTED_IMPLIB "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x64/SDL2.lib") + set_property(TARGET SDL2main PROPERTY IMPORTED_IMPLIB "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x64/SDL2main.lib") + + set_property(TARGET libpng16-16 PROPERTY IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x64/libpng16-16.dll") + set_property(TARGET SDL2_image PROPERTY IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x64/SDL2_image.dll") + set_property(TARGET SDL2 PROPERTY IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x64/SDL2.dll") + set_property(TARGET zlib1 PROPERTY IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x64/zlib1.dll") else() - set_property(TARGET SDL2_image PROPERTY IMPORTED_IMPLIB_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x86/SDL2_image.lib" - ) - set_property(TARGET SDL2 PROPERTY IMPORTED_IMPLIB_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x86/SDL2.lib" - ) - set_property(TARGET SDL2main PROPERTY IMPORTED_IMPLIB_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x86/SDL2main.lib" - ) - - set_property(TARGET libpng16-16 PROPERTY IMPORTED_LOCATION_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x86/libpng16-16.dll" - ) - set_property(TARGET SDL2_image PROPERTY IMPORTED_LOCATION_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x86/SDL2_image.dll" - ) - set_property(TARGET SDL2 PROPERTY IMPORTED_LOCATION_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x86/SDL2.dll" - ) - set_property(TARGET zlib1 PROPERTY IMPORTED_LOCATION_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x86/zlib1.dll" - ) - - set_property(TARGET SDL2_image PROPERTY IMPORTED_IMPLIB_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x86/SDL2_image.lib" - ) - set_property(TARGET SDL2 PROPERTY IMPORTED_IMPLIB_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x86/SDL2.lib" - ) - set_property(TARGET SDL2main PROPERTY IMPORTED_IMPLIB_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x86/SDL2main.lib" - ) - - set_property(TARGET libpng16-16 PROPERTY IMPORTED_LOCATION_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x86/libpng16-16.dll" - ) - set_property(TARGET SDL2_image PROPERTY IMPORTED_LOCATION_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x86/SDL2_image.dll" - ) - set_property(TARGET SDL2 PROPERTY IMPORTED_LOCATION_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x86/SDL2.dll" - ) - set_property(TARGET zlib1 PROPERTY IMPORTED_LOCATION_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x86/zlib1.dll" - ) + set_property(TARGET SDL2_image PROPERTY IMPORTED_IMPLIB "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x86/SDL2_image.lib") + set_property(TARGET SDL2 PROPERTY IMPORTED_IMPLIB "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x86/SDL2.lib") + set_property(TARGET SDL2main PROPERTY IMPORTED_IMPLIB "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x86/SDL2main.lib") + + set_property(TARGET libpng16-16 PROPERTY IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x86/libpng16-16.dll") + set_property(TARGET SDL2_image PROPERTY IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x86/SDL2_image.dll") + set_property(TARGET SDL2 PROPERTY IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x86/SDL2.dll") + set_property(TARGET zlib1 PROPERTY IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/Dependencies/SDL2/lib/x86/zlib1.dll") endif() #sfml @@ -287,319 +221,248 @@ if(NOT UNIX) add_library(sfml-audio SHARED IMPORTED GLOBAL) add_library(sfml-network SHARED IMPORTED GLOBAL) add_library(sfml-system SHARED IMPORTED GLOBAL) - if(CMAKE_SIZEOF_VOID_P EQUAL 8)# 64 bits - set_property(TARGET openal32 PROPERTY IMPORTED_IMPLIB_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x64/openal32.lib" - ) - set_property(TARGET sfml-audio PROPERTY IMPORTED_IMPLIB_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x64/sfml-audio.lib" - ) - set_property(TARGET sfml-network PROPERTY IMPORTED_IMPLIB_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x64/sfml-network.lib" - ) - set_property(TARGET sfml-system PROPERTY IMPORTED_IMPLIB_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x64/sfml-system.lib" - ) - - set_property(TARGET openal32 PROPERTY IMPORTED_LOCATION_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x64/openal32.dll" - ) - set_property(TARGET sfml-audio PROPERTY IMPORTED_LOCATION_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x64/sfml-audio-2.dll" - ) - set_property(TARGET sfml-network PROPERTY IMPORTED_LOCATION_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x64/sfml-network-2.dll" - ) - set_property(TARGET sfml-system PROPERTY IMPORTED_LOCATION_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x64/sfml-system-2.dll" - ) - - set_property(TARGET openal32 PROPERTY IMPORTED_IMPLIB_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x64/openal32.lib" - ) - set_property(TARGET sfml-audio PROPERTY IMPORTED_IMPLIB_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x64/sfml-audio-d.lib" - ) - set_property(TARGET sfml-network PROPERTY IMPORTED_IMPLIB_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x64/sfml-network-d.lib" - ) - set_property(TARGET sfml-system PROPERTY IMPORTED_IMPLIB_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x64/sfml-system-d.lib" - ) - - set_property(TARGET openal32 PROPERTY IMPORTED_LOCATION_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x64/openal32.dll" - ) - set_property(TARGET sfml-audio PROPERTY IMPORTED_LOCATION_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x64/sfml-audio-d-2.dll" - ) - set_property(TARGET sfml-network PROPERTY IMPORTED_LOCATION_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x64/sfml-network-d-2.dll" - ) - set_property(TARGET sfml-system PROPERTY IMPORTED_LOCATION_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x64/sfml-system-d-2.dll" - ) - + if(CMAKE_SIZEOF_VOID_P EQUAL 8) # 64 bits + set_property(TARGET openal32 PROPERTY IMPORTED_IMPLIB_RELEASE "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x64/openal32.lib") + set_property(TARGET sfml-audio PROPERTY IMPORTED_IMPLIB_RELEASE "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x64/sfml-audio.lib") + set_property(TARGET sfml-network PROPERTY IMPORTED_IMPLIB_RELEASE "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x64/sfml-network.lib") + set_property(TARGET sfml-system PROPERTY IMPORTED_IMPLIB_RELEASE "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x64/sfml-system.lib") + + set_property(TARGET openal32 PROPERTY IMPORTED_LOCATION_RELEASE "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x64/openal32.dll") + set_property(TARGET sfml-audio PROPERTY IMPORTED_LOCATION_RELEASE "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x64/sfml-audio-2.dll") + set_property(TARGET sfml-network PROPERTY IMPORTED_LOCATION_RELEASE "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x64/sfml-network-2.dll") + set_property(TARGET sfml-system PROPERTY IMPORTED_LOCATION_RELEASE "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x64/sfml-system-2.dll") + + set_property(TARGET openal32 PROPERTY IMPORTED_IMPLIB_DEBUG "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x64/openal32.lib") + set_property(TARGET sfml-audio PROPERTY IMPORTED_IMPLIB_DEBUG "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x64/sfml-audio-d.lib") + set_property(TARGET sfml-network PROPERTY IMPORTED_IMPLIB_DEBUG "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x64/sfml-network-d.lib") + set_property(TARGET sfml-system PROPERTY IMPORTED_IMPLIB_DEBUG "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x64/sfml-system-d.lib") + + set_property(TARGET openal32 PROPERTY IMPORTED_LOCATION_DEBUG "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x64/openal32.dll") + set_property(TARGET sfml-audio PROPERTY IMPORTED_LOCATION_DEBUG "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x64/sfml-audio-d-2.dll") + set_property(TARGET sfml-network PROPERTY IMPORTED_LOCATION_DEBUG "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x64/sfml-network-d-2.dll") + set_property(TARGET sfml-system PROPERTY IMPORTED_LOCATION_DEBUG "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x64/sfml-system-d-2.dll") else() - set_property(TARGET openal32 PROPERTY IMPORTED_IMPLIB_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x86/openal32.lib" - ) - set_property(TARGET sfml-audio PROPERTY IMPORTED_IMPLIB_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x86/sfml-audio.lib" - ) - set_property(TARGET sfml-network PROPERTY IMPORTED_IMPLIB_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x86/sfml-network.lib" - ) - set_property(TARGET sfml-system PROPERTY IMPORTED_IMPLIB_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x86/sfml-system.lib" - ) - - set_property(TARGET openal32 PROPERTY IMPORTED_LOCATION_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x86/openal32.dll" - ) - set_property(TARGET sfml-audio PROPERTY IMPORTED_LOCATION_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x86/sfml-audio-2.dll" - ) - set_property(TARGET sfml-network PROPERTY IMPORTED_LOCATION_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x86/sfml-network-2.dll" - ) - set_property(TARGET sfml-system PROPERTY IMPORTED_LOCATION_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x86/sfml-system-2.dll" - ) - - set_property(TARGET openal32 PROPERTY IMPORTED_IMPLIB_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x86/openal32.lib" - ) - set_property(TARGET sfml-audio PROPERTY IMPORTED_IMPLIB_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x86/sfml-audio-d.lib" - ) - set_property(TARGET sfml-network PROPERTY IMPORTED_IMPLIB_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x86/sfml-network-d.lib" - ) - set_property(TARGET sfml-system PROPERTY IMPORTED_IMPLIB_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x86/sfml-system-d.lib" - ) - - set_property(TARGET openal32 PROPERTY IMPORTED_LOCATION_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x86/openal32.dll" - ) - set_property(TARGET sfml-audio PROPERTY IMPORTED_LOCATION_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x86/sfml-audio-d-2.dll" - ) - set_property(TARGET sfml-network PROPERTY IMPORTED_LOCATION_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x86/sfml-network-d-2.dll" - ) - set_property(TARGET sfml-system PROPERTY IMPORTED_LOCATION_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x86/sfml-system-d-2.dll" - ) + set_property(TARGET openal32 PROPERTY IMPORTED_IMPLIB_RELEASE "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x86/openal32.lib") + set_property(TARGET sfml-audio PROPERTY IMPORTED_IMPLIB_RELEASE "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x86/sfml-audio.lib") + set_property(TARGET sfml-network PROPERTY IMPORTED_IMPLIB_RELEASE "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x86/sfml-network.lib") + set_property(TARGET sfml-system PROPERTY IMPORTED_IMPLIB_RELEASE "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x86/sfml-system.lib") + + set_property(TARGET openal32 PROPERTY IMPORTED_LOCATION_RELEASE "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x86/openal32.dll") + set_property(TARGET sfml-audio PROPERTY IMPORTED_LOCATION_RELEASE "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x86/sfml-audio-2.dll") + set_property(TARGET sfml-network PROPERTY IMPORTED_LOCATION_RELEASE "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x86/sfml-network-2.dll") + set_property(TARGET sfml-system PROPERTY IMPORTED_LOCATION_RELEASE "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x86/sfml-system-2.dll") + + set_property(TARGET openal32 PROPERTY IMPORTED_IMPLIB_DEBUG "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x86/openal32.lib") + set_property(TARGET sfml-audio PROPERTY IMPORTED_IMPLIB_DEBUG "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x86/sfml-audio-d.lib") + set_property(TARGET sfml-network PROPERTY IMPORTED_IMPLIB_DEBUG "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x86/sfml-network-d.lib") + set_property(TARGET sfml-system PROPERTY IMPORTED_IMPLIB_DEBUG "${CMAKE_SOURCE_DIR}/Dependencies/SFML/lib/x86/sfml-system-d.lib") + + set_property(TARGET openal32 PROPERTY IMPORTED_LOCATION_DEBUG "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x86/openal32.dll") + set_property(TARGET sfml-audio PROPERTY IMPORTED_LOCATION_DEBUG "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x86/sfml-audio-d-2.dll") + set_property(TARGET sfml-network PROPERTY IMPORTED_LOCATION_DEBUG "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x86/sfml-network-d-2.dll") + set_property(TARGET sfml-system PROPERTY IMPORTED_LOCATION_DEBUG "${CMAKE_SOURCE_DIR}/Dependencies/SFML/bin/x86/sfml-system-d-2.dll") endif() #freetype add_library(freetype SHARED IMPORTED GLOBAL) - if(CMAKE_SIZEOF_VOID_P EQUAL 8)# 64 bits - set_property(TARGET freetype PROPERTY IMPORTED_IMPLIB_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/FreeType/lib/win64/freetype.lib" - ) + set_property(TARGET zlib PROPERTY INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/Dependencies/Freetype/include") + if(CMAKE_SIZEOF_VOID_P EQUAL 8) # 64 bits + set_property(TARGET freetype PROPERTY IMPORTED_IMPLIB_RELEASE "${CMAKE_SOURCE_DIR}/Dependencies/FreeType/lib/win64/freetype.lib") set_property(TARGET freetype PROPERTY IMPORTED_LOCATION_RELEASE ) - set_property(TARGET freetype PROPERTY IMPORTED_IMPLIB_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/FreeType/lib/win64/freetype.lib" - ) + set_property(TARGET freetype PROPERTY IMPORTED_IMPLIB_DEBUG "${CMAKE_SOURCE_DIR}/Dependencies/FreeType/lib/win64/freetype.lib") set_property(TARGET freetype PROPERTY IMPORTED_LOCATION_DEBUG ) else() - set_property(TARGET freetype PROPERTY IMPORTED_IMPLIB_RELEASE - "${CMAKE_SOURCE_DIR}/Dependencies/FreeType/lib/win32/freetype.lib" - ) + set_property(TARGET freetype PROPERTY IMPORTED_IMPLIB_RELEASE "${CMAKE_SOURCE_DIR}/Dependencies/FreeType/lib/win32/freetype.lib") set_property(TARGET freetype PROPERTY IMPORTED_LOCATION_RELEASE ) - set_property(TARGET freetype PROPERTY IMPORTED_IMPLIB_DEBUG - "${CMAKE_SOURCE_DIR}/Dependencies/FreeType/lib/win32/freetype.lib" - ) - set_property(TARGET freetype PROPERTY IMPORTED_LOCATION_DEBUG - - ) + set_property(TARGET freetype PROPERTY IMPORTED_IMPLIB_DEBUG "${CMAKE_SOURCE_DIR}/Dependencies/FreeType/lib/win32/freetype.lib") + # set_property(TARGET freetype PROPERTY IMPORTED_LOCATION_DEBUG) endif() +else() endif() # Define the include DIRs message(STATUS "Configuring include directories") -include_directories( - ${CMAKE_SOURCE_DIR}/Dependencies/glm -) +# glm +include_directories("${CMAKE_SOURCE_DIR}/Dependencies/glm") -if (UNIX)#zlib +if (NOT ${BUILD_PLATFORM} STREQUAL wasm) find_package(ZLIB REQUIRED) include_directories(${ZLIB_INCLUDE_DIRS}) target_link_libraries(${PROJECT_NAME} ${ZLIB_LIBRARIES}) -else() - include_directories( - ${PROJECT_NAME} - ${CMAKE_SOURCE_DIR}/Dependencies/zlib/include/zlib - ) - target_link_libraries(${PROJECT_NAME} zlib) - - add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - $ $ - ) -endif(UNIX) -if (UNIX)#glew find_package(GLEW REQUIRED) include_directories(${GLEW_INCLUDE_DIRS}) target_link_libraries(${PROJECT_NAME} ${GLEW_LIBRARIES}) -else() - include_directories( - ${PROJECT_NAME} - ${CMAKE_SOURCE_DIR}/Dependencies/GLEW/include - ) - target_link_libraries(${PROJECT_NAME} glew) - - add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - $ $ - ) -endif(UNIX) -if(NOT ${BUILD_PLATFORM} STREQUAL wasm) - if (UNIX)#sfml - find_package(SFML REQUIRED COMPONENTS system network) - target_link_libraries(${PROJECT_NAME} sfml-system sfml-network) - else() - include_directories( - ${PROJECT_NAME} - ${CMAKE_SOURCE_DIR}/Dependencies/SFML/include - ) - target_link_libraries(${PROJECT_NAME} openal32 sfml-network sfml-system) - - add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - $ $ - ) - - add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - $ $ - ) - add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - $ $ - ) + find_package(SFML REQUIRED COMPONENTS system network) + include_directories("${CMAKE_SOURCE_DIR}/Dependencies/SFML/include") + target_link_libraries(${PROJECT_NAME} sfml-system sfml-network sfml-audio) - endif(UNIX) -endif() + find_package(Freetype REQUIRED) + include_directories(${FREETYPE_INCLUDE_DIRS}) + target_link_libraries(${PROJECT_NAME} ${FREETYPE_LIBRARIES}) -if(${BUILD_TARGET} STREQUAL client) - message(STATUS "Configuring client include directories") - cmake_policy(SET CMP0072 NEW) # OpenGL GLVND find_package(OpenGL REQUIRED) include_directories(${OPENGL_INCLUDE_DIRS}) target_link_libraries(${PROJECT_NAME} ${OPENGL_LIBRARIES}) - if (UNIX)#sdl2 - find_package(SDL2 REQUIRED) - find_package(SDL2_image REQUIRED) - include_directories(${SDL2_INCLUDE_DIRS} ${SDL2_IMAGE_INCLUDE_DIRS}) - target_link_libraries(${PROJECT_NAME} ${SDL2_LIBRARIES} ${SDL2_IMAGE_LIBRARIES}) - else() - include_directories( - ${PROJECT_NAME} - ${CMAKE_SOURCE_DIR}/Dependencies/SDL2/include - ) - target_link_libraries(${PROJECT_NAME} SDL2_image SDL2 SDL2main) - - add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - $ $ - ) - - add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - $ $ - ) - - add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - $ $ - ) - - add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - $ $ - ) - - endif(UNIX) - - if(NOT ${BUILD_PLATFORM} STREQUAL wasm) - if (UNIX)#sfml - find_package(SFML REQUIRED COMPONENTS audio) - target_link_libraries(${PROJECT_NAME} sfml-audio) - else() - include_directories( - ${PROJECT_NAME} - ${CMAKE_SOURCE_DIR}/Dependencies/SFML/include - ) - target_link_libraries(${PROJECT_NAME} sfml-audio) - - add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD - COMMAND ${CMAKE_COMMAND} -E copy_if_different - $ $ - ) - - endif(UNIX) - endif() - - if (UNIX)#freetype - find_package(Freetype REQUIRED) - include_directories(${FREETYPE_INCLUDE_DIRS}) - target_link_libraries(${PROJECT_NAME} ${FREETYPE_LIBRARIES}) - else() - include_directories( - ${PROJECT_NAME} - ${CMAKE_SOURCE_DIR}/Dependencies/Freetype/include - ) - target_link_libraries(${PROJECT_NAME} freetype) - - endif(UNIX) - - #add missing folders + find_package(SDL2 REQUIRED) + find_package(SDL2_image REQUIRED) + include_directories(${SDL2_INCLUDE_DIRS} ${SDL2_IMAGE_INCLUDE_DIRS}) + target_link_libraries(${PROJECT_NAME} ${SDL2_LIBRARIES} ${SDL2_IMAGE_LIBRARIES}) +else () + include_directories("${CMAKE_SOURCE_DIR}/Dependencies/SFML/include") + include_directories("${CMAKE_SOURCE_DIR}/Dependencies/EMSFML/src") + + if (${CMAKE_BUILD_TYPE} STREQUAL Release) + set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS + "-fno-rtti \ + -Wno-pthreads-mem-growth \ + -pthread \ + -s PTHREAD_POOL_SIZE=5 \ + -s WASM=1 \ + -s USE_SDL=2 \ + -s USE_SDL_IMAGE=2 \ + -s SDL2_IMAGE_FORMATS='[\"png\"]' \ + -s USE_SDL_GFX=2 \ + -s USE_FREETYPE=2 \ + -s ALLOW_MEMORY_GROWTH=1 \ + -s MAX_WEBGL_VERSION=2 \ + -s MIN_WEBGL_VERSION=2 \ + -s FULL_ES2=1 \ + -s FULL_ES3=1 \ + -s WEBSOCKET_URL='wss://pi.thissma.fr:55001' \ + -s WEBSOCKET_SUBPROTOCOL='binary' \ + --preload-file ${CMAKE_SOURCE_DIR}/OpenGL/data@data \ + --preload-file ${CMAKE_SOURCE_DIR}/OpenGL/src@src \ + -Wno-unused-command-line-argument \ + -g0 -O3" + ) + set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS + "-fno-rtti \ + -Wno-pthreads-mem-growth \ + -pthread \ + -s PTHREAD_POOL_SIZE=5 \ + -s WASM=1 \ + -s USE_SDL=2 \ + -s USE_SDL_IMAGE=2 \ + -s SDL2_IMAGE_FORMATS='[\"png\"]' \ + -s USE_SDL_GFX=2 \ + -s USE_FREETYPE=2 \ + -s ALLOW_MEMORY_GROWTH=1 \ + -s MAX_WEBGL_VERSION=2 \ + -s MIN_WEBGL_VERSION=2 \ + -s FULL_ES2=1 \ + -s FULL_ES3=1 \ + -s WEBSOCKET_URL='wss://pi.thissma.fr:55001' \ + -s WEBSOCKET_SUBPROTOCOL='binary' \ + --preload-file ${CMAKE_SOURCE_DIR}/OpenGL/data@data \ + --preload-file ${CMAKE_SOURCE_DIR}/OpenGL/src@src \ + -Wno-unused-command-line-argument \ + -g0 -O3" + ) + else () + set_target_properties(${PROJECT_NAME} PROPERTIES LINK_FLAGS + "-fno-rtti \ + -Wno-pthreads-mem-growth \ + -pthread \ + -s PTHREAD_POOL_SIZE=5 \ + -s WASM=1 \ + -s USE_SDL=2 \ + -s USE_SDL_IMAGE=2 \ + -s SDL2_IMAGE_FORMATS='[\"png\"]' \ + -s USE_SDL_GFX=2 \ + -s USE_FREETYPE=2 \ + -s ALLOW_MEMORY_GROWTH=1 \ + -s MAX_WEBGL_VERSION=2 \ + -s MIN_WEBGL_VERSION=2 \ + -s FULL_ES2=1 \ + -s FULL_ES3=1 \ + -s WEBSOCKET_URL='wss://pi.thissma.fr:55001' \ + -s WEBSOCKET_SUBPROTOCOL='binary' \ + -s NO_DISABLE_EXCEPTION_CATCHING \ + -s NO_DISABLE_EXCEPTION_THROWING \ + -s DEMANGLE_SUPPORT=1 \ + -s ABORT_ON_WASM_EXCEPTIONS=1 \ + -s EXIT_RUNTIME=1 \ + --preload-file ${CMAKE_SOURCE_DIR}/OpenGL/data@data \ + --preload-file ${CMAKE_SOURCE_DIR}/OpenGL/src@src \ + -Wno-unused-command-line-argument \ + --source-map-base sources/build/Client/Wasm/Debug/ \ + -gsource-map -O0" + ) + set_target_properties(${PROJECT_NAME} PROPERTIES COMPILE_FLAGS + "-fno-rtti \ + -Wno-pthreads-mem-growth \ + -pthread \ + -s PTHREAD_POOL_SIZE=5 \* + -s WASM=1 \ + -s USE_SDL=2 \ + -s USE_SDL_IMAGE=2 \ + -s SDL2_IMAGE_FORMATS='[\"png\"]' \ + -s USE_SDL_GFX=2 \ + -s USE_FREETYPE=2 \ + -s ALLOW_MEMORY_GROWTH=1 \ + -s MAX_WEBGL_VERSION=2 \ + -s MIN_WEBGL_VERSION=2 \ + -s FULL_ES2=1 \ + -s FULL_ES3=1 \ + -s WEBSOCKET_URL='wss://pi.thissma.fr:55001' \ + -s WEBSOCKET_SUBPROTOCOL='binary' \ + -s NO_DISABLE_EXCEPTION_CATCHING \ + -s NO_DISABLE_EXCEPTION_THROWING \ + -s DEMANGLE_SUPPORT=1 \ + -s ABORT_ON_WASM_EXCEPTIONS=1 \ + -s EXIT_RUNTIME=1 \ + --preload-file ${CMAKE_SOURCE_DIR}/OpenGL/data@data \ + --preload-file ${CMAKE_SOURCE_DIR}/OpenGL/src@src \ + -Wno-unused-command-line-argument \ + --source-map-base sources/build/Client/Wasm/Debug/ \ + -gsource-map -O0" + ) + endif () + +endif () + +# Copy assets +if (NOT ${BUILD_PLATFORM} STREQUAL wasm) add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory - ${CMAKE_CURRENT_SOURCE_DIR}/data/img $/data/img + ${CMAKE_CURRENT_SOURCE_DIR}/data/fonts $/data/fonts ) - add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/data/music $/data/music ) - add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory - ${CMAKE_CURRENT_SOURCE_DIR}/data/fonts $/data/fonts + ${CMAKE_CURRENT_SOURCE_DIR}/src/shader $/src/shader ) - add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory - ${CMAKE_CURRENT_SOURCE_DIR}/src/shader $/src/shader + ${CMAKE_CURRENT_SOURCE_DIR}/data/img $/data/img ) - - - if(${BUILD_PLATFORM} STREQUAL wasm) - message(STATUS "Configuring wasm include directories") - include_directories( - ${CMAKE_SOURCE_DIR}/Dependencies/EMSFML/src/SFML/Network - ${CMAKE_SOURCE_DIR}/Dependencies/EMSFML/src/SFML/System +else () + add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${CMAKE_CURRENT_SOURCE_DIR}/data/wasm/. $/ + ) + if (${CMAKE_BUILD_TYPE} STREQUAL Debug) + add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy + $/MonCraft.wasm.map $/sources/build/Client/Wasm/Debug/MonCraft.wasm.map ) - - endif() - -else() #server -message(STATUS "Configuring server include directories") -endif() - + add_custom_command (TARGET ${PROJECT_NAME} POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy_directory + ${CMAKE_CURRENT_SOURCE_DIR}/src $/sources/OpenGL/src + ) + endif () +endif () diff --git a/OpenGL/src/save/ServerConfig.hpp b/OpenGL/src/save/ServerConfig.hpp index 9054b493..8ecdd808 100644 --- a/OpenGL/src/save/ServerConfig.hpp +++ b/OpenGL/src/save/ServerConfig.hpp @@ -11,7 +11,7 @@ namespace Config { #ifdef EMSCRIPTEN unsigned short serverPort = 55001; - unsigned int threadCount = 4; + unsigned int threadCount = 2; #else unsigned short serverPort = 55000; unsigned int threadCount = 8; diff --git a/README.md b/README.md index 11e3dbcc..7cb5d9fc 100644 --- a/README.md +++ b/README.md @@ -31,6 +31,24 @@ Why Buy Minecraft When You Can Code it Yourself? 💹 2. SFML 3. GLEW 4. GLM + 5. Freetype + +### App + +Use cmake with the flags `BUILD_TARGET=` and `CMAKE_BUILD_TYPE=`. +Default is client / Release. + +Run in build directory: `cd /App/ && ./MonCraft` + +### WASM + + - Install and activate emscripten. + - Use the following commands, but replace stuff in `<>` with appropriate: + - `mkdir build && cd build` + - `emcmake cmake -DBUILD_TARGET=client -DCMAKE_BUILD_TYPE= -DBUILD_PLATFORM=wasm ..` + - `make -j` + - `emrun --no_browser --serve_after_close --serve_root Client/Wasm// Client/Wasm//MonCraft.html` + ****