diff --git a/.vscode/launch.json b/.vscode/launch.json new file mode 100644 index 000000000..05ddfb4ec --- /dev/null +++ b/.vscode/launch.json @@ -0,0 +1,55 @@ +{ + "version": "0.2.0", + "configurations": [ + + { + "name": "Bridge Command (vsdbg)", + "type": "cppvsdbg", + "request": "launch", + "program": "${workspaceFolder}/build/Debug/BridgeCommand-bc.exe", + "cwd": "${workspaceFolder}/bin" + }, + { + "name": "Scenario Editor (vsdbg)", + "type": "cppvsdbg", + "request": "launch", + "program": "${workspaceFolder}/build/Debug/BridgeCommand-ed.exe", + "cwd": "${workspaceFolder}/bin" + }, + { + "name": "Settings Editor (vsdbg)", + "type": "cppvsdbg", + "request": "launch", + "program": "${workspaceFolder}/build/Debug/BridgeCommand-ini.exe", + "cwd": "${workspaceFolder}/bin" + }, + { + "name": "Map Controller (vsdbg)", + "type": "cppvsdbg", + "request": "launch", + "program": "${workspaceFolder}/build/Debug/BridgeCommand-mc.exe", + "cwd": "${workspaceFolder}/bin" + }, + { + "name": "Multiplayer Hub (vsdbg)", + "type": "cppvsdbg", + "request": "launch", + "program": "${workspaceFolder}/build/Debug/BridgeCommand-mh.exe", + "cwd": "${workspaceFolder}/bin" + }, + { + "name": "Repeater (vsdbg)", + "type": "cppvsdbg", + "request": "launch", + "program": "${workspaceFolder}/build/Debug/BridgeCommand-rp.exe", + "cwd": "${workspaceFolder}/bin" + }, + { + "name": "Launcher (vsdbg)", + "type": "cppvsdbg", + "request": "launch", + "program": "${workspaceFolder}/build/Debug/BridgeCommand.exe", + "cwd": "${workspaceFolder}/bin" + } + ] +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 000000000..bf77872c2 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "cmake.sourceDirectory": "${workspaceFolder}/src" +} \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a403446ab..3408e6282 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -14,12 +14,33 @@ if (APPLE) set(CMAKE_OSX_ARCHITECTURES "arm64;x86_64") endif (APPLE) +if (WIN32) +set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /MT") +set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} /MTd") + +add_subdirectory(libs/asio) +add_subdirectory(libs/serial) +include_directories("libs/enet-1.3.14/include") +include_directories(libs/libsndfile/include) +include_directories(libs/portaudio/include) +include_directories(libs/Irrlicht/irrlicht-svn/include) +include_directories(libs/OpenXR/OpenXR-SDK-main/include/openxr) + +LINK_DIRECTORIES(libs/libsndfile/lib) +LINK_DIRECTORIES(libs/portaudio/lib) +LINK_DIRECTORIES(libs/enet-1.3.14) +LINK_DIRECTORIES(libs/Irrlicht/irrlicht-svn/lib/Win64-visualstudio) +LINK_DIRECTORIES(libs/OpenXR/OpenXR-SDK-main/build/win64/src/loader/Release) +LINK_DIRECTORIES(libs/OpenXR/OpenXR-SDK-main/build/win64/src/loader/Debug) +else (WIN32) add_subdirectory(libs/asio) add_subdirectory(libs/enet-1.3.14) add_subdirectory(libs/Irrlicht) add_subdirectory(libs/serial) include_directories("libs/enet-1.3.14/include") +endif (WIN32) + add_definitions(-DWITH_SOUND) # add_definitions(-DWITH_PROFILING) if (NOT APPLE) @@ -36,9 +57,9 @@ add_subdirectory(repeater) set(CMAKE_THREAD_PREFER_PTHREAD ON) find_package(Threads REQUIRED) -if (NOT APPLE) +if (NOT APPLE AND NOT WIN32) find_package(OpenXR REQUIRED) -endif(NOT APPLE) +endif(NOT APPLE AND NOT WIN32) set(BC_SOURCES iprof.cpp @@ -127,7 +148,22 @@ if (APPLE) "-framework AudioToolbox" "-framework CoreAudio" ) -else (APPLE) +elseif (WIN32) + target_link_libraries(bridgecommand-bc PRIVATE + bc-asio + enet64 + bc-serial + irrlicht + Threads::Threads + sndfile + portaudio_x64 + winmm + ws2_32 + debug openxr_loaderd + optimized openxr_loader + opengl32 + ) +else () target_link_libraries(bridgecommand-bc PRIVATE bc-asio enet @@ -140,4 +176,4 @@ else (APPLE) GL OpenXR::openxr_loader ) -endif (APPLE) +endif () diff --git a/src/controller/CMakeLists.txt b/src/controller/CMakeLists.txt index c6b311ebd..a66d63395 100644 --- a/src/controller/CMakeLists.txt +++ b/src/controller/CMakeLists.txt @@ -17,6 +17,17 @@ add_executable(bridgecommand-mc set(CMAKE_THREAD_PREFER_PTHREAD ON) find_package(Threads REQUIRED) +if (WIN32) +target_link_libraries(bridgecommand-mc + bc-asio + enet64 + irrlicht + bc-aisparser + Threads::Threads + winmm + ws2_32 +) +else () target_link_libraries(bridgecommand-mc bc-asio enet @@ -24,3 +35,4 @@ target_link_libraries(bridgecommand-mc bc-aisparser Threads::Threads ) +endif () diff --git a/src/editor/CMakeLists.txt b/src/editor/CMakeLists.txt index 61c6938be..45a5456fa 100644 --- a/src/editor/CMakeLists.txt +++ b/src/editor/CMakeLists.txt @@ -12,7 +12,12 @@ add_executable(bridgecommand-ed StartupEventReceiver.cpp ) - +if (WIN32) +target_link_libraries(bridgecommand-ed + irrlicht +) +else () target_link_libraries(bridgecommand-ed bc-irrlicht ) +endif () diff --git a/src/iniEditor/CMakeLists.txt b/src/iniEditor/CMakeLists.txt index b750afca1..74c49d38c 100644 --- a/src/iniEditor/CMakeLists.txt +++ b/src/iniEditor/CMakeLists.txt @@ -6,6 +6,12 @@ add_executable(bridgecommand-ini ../Utilities.cpp ) +if (WIN32) +target_link_libraries(bridgecommand-ini + irrlicht +) +else () target_link_libraries(bridgecommand-ini bc-irrlicht ) +endif () diff --git a/src/launcher/CMakeLists.txt b/src/launcher/CMakeLists.txt index dfce911d5..019b6984f 100644 --- a/src/launcher/CMakeLists.txt +++ b/src/launcher/CMakeLists.txt @@ -6,6 +6,12 @@ add_executable(bridgecommand ../Utilities.cpp ) +if (WIN32) +target_link_libraries(bridgecommand + irrlicht +) +else () target_link_libraries(bridgecommand bc-irrlicht ) +endif () diff --git a/src/libs/OpenXR/OpenXR-SDK-main/build/win64/src/loader/Debug/openxr_loaderd.lib b/src/libs/OpenXR/OpenXR-SDK-main/build/win64/src/loader/Debug/openxr_loaderd.lib new file mode 100644 index 000000000..6dab5f97b Binary files /dev/null and b/src/libs/OpenXR/OpenXR-SDK-main/build/win64/src/loader/Debug/openxr_loaderd.lib differ diff --git a/src/multiplayerHub/CMakeLists.txt b/src/multiplayerHub/CMakeLists.txt index fb5936e52..9539c5ae6 100644 --- a/src/multiplayerHub/CMakeLists.txt +++ b/src/multiplayerHub/CMakeLists.txt @@ -13,7 +13,17 @@ add_executable(bridgecommand-mh EventReceiver.cpp ) +if (WIN32) +target_link_libraries(bridgecommand-mh + enet64 + irrlicht + winmm + ws2_32 +) +else () target_link_libraries(bridgecommand-mh enet bc-irrlicht ) +endif () + diff --git a/src/repeater/CMakeLists.txt b/src/repeater/CMakeLists.txt index d719d967d..ca9728b29 100644 --- a/src/repeater/CMakeLists.txt +++ b/src/repeater/CMakeLists.txt @@ -16,9 +16,21 @@ add_executable(bridgecommand-rp set(CMAKE_THREAD_PREFER_PTHREAD ON) find_package(Threads REQUIRED) +if (WIN32) +target_link_libraries(bridgecommand-rp + bc-asio + enet64 + irrlicht + Threads::Threads + winmm + ws2_32 +) +else () target_link_libraries(bridgecommand-rp bc-asio enet bc-irrlicht Threads::Threads ) +endif () +