diff --git a/CMakeLists.txt b/CMakeLists.txt index 06f4116..838281f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,9 +7,11 @@ project(player) project(server) project(studio) -find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets OpenGLWidgets) +option(COMPILE_PLAYER "Compile the RBXNU Player" ON) +option(COMPILE_SERVER "Compile the RBXNU Server" ON) +option(COMPILE_STUDIO "Compile the RBXNU Studio" ON) + find_package(Boost REQUIRED) -qt_standard_project_setup() add_library(engine STATIC src/engine/app/gui/Adorn.cpp @@ -26,29 +28,40 @@ add_library(engine STATIC src/include/engine/network/Guid.hpp ) -create_resources(rsc/client ${CMAKE_BINARY_DIR}/client_rsc.h) -qt_add_executable(player - src/client/player/main.cpp - - ${CMAKE_BINARY_DIR}/client_rsc.c -) - -create_resources(rsc/server ${CMAKE_BINARY_DIR}/server_rsc.h) -add_executable(server - src/client/server/main.cpp -) - -create_resources(rsc/studio ${CMAKE_BINARY_DIR}/studio_rsc.h) -qt_add_executable(studio - src/client/studio/StudioWindow.cpp - src/include/client/studio/StudioWindow.hpp - src/client/studio/main.cpp -) - target_include_directories(engine PUBLIC src/include ${CMAKE_BINARY_DIR}) target_link_libraries(engine PUBLIC ${BOOST_LIBRARIES}) -set(QT6_LIBRARIES_INCL Qt6::Core Qt6::Gui Qt6::Widgets Qt6::OpenGLWidgets) -target_link_libraries(player PRIVATE ${QT6_LIBRARIES_INCL} engine) -target_link_libraries(studio PRIVATE ${QT6_LIBRARIES_INCL} engine) -target_link_libraries(server PRIVATE engine) \ No newline at end of file +if(COMPILE_PLAYER) + create_resources(rsc/client ${CMAKE_BINARY_DIR}/player_rsc.h) + add_executable(player + src/client/player/main.cpp + + ${CMAKE_BINARY_DIR}/player_rsc.h + ) + target_link_libraries(player PRIVATE engine) +endif() + +if(COMPILE_SERVER) + create_resources(rsc/server ${CMAKE_BINARY_DIR}/server_rsc.h) + add_executable(server + src/client/server/main.cpp + + ${CMAKE_BINARY_DIR}/server_rsc.h + ) + target_link_libraries(server PRIVATE engine) +endif() + +if(COMPILE_STUDIO) + find_package(Qt6 REQUIRED COMPONENTS Core Gui Widgets OpenGLWidgets) + qt_standard_project_setup() + set(QT6_LIBRARIES_INCL Qt6::Core Qt6::Gui Qt6::Widgets Qt6::OpenGLWidgets) + create_resources(rsc/studio ${CMAKE_BINARY_DIR}/studio_rsc.h) + qt_add_executable(studio + src/client/studio/StudioWindow.cpp + src/include/client/studio/StudioWindow.hpp + src/client/studio/main.cpp + + ${CMAKE_BINARY_DIR}/studio_rsc.h + ) + target_link_libraries(studio PRIVATE ${QT6_LIBRARIES_INCL} engine) +endif() diff --git a/src/client/player/main.cpp b/src/client/player/main.cpp index e5ecee2..117ab4f 100644 --- a/src/client/player/main.cpp +++ b/src/client/player/main.cpp @@ -1,6 +1,15 @@ #include -int main() +#include + +#include + +int main(int argc, char** argv) { - printf("Hello world!"); + QApplication app(argc, argv); + PlayerWindow window = PlayerWindow(); + + window.show(); + + return app.exec(); } \ No newline at end of file diff --git a/src/include/client/player/.gitkeep b/src/include/client/player/.gitkeep deleted file mode 100644 index e69de29..0000000