From afad2c80e5ee73d5533cdedce4d5f28bd9d52489 Mon Sep 17 00:00:00 2001 From: Ilya Shurupov <163508118+elushaX@users.noreply.github.com> Date: Tue, 22 Oct 2024 05:40:45 -0700 Subject: [PATCH] Windows update --- 3DEditor/CMakeLists.txt | 3 +- CMakeLists.txt | 13 ++++-- Externals/CMakeLists.txt | 43 +------------------- Graphics/private/Window.cpp | 5 ++- Widgets/private/managers/UpdateManager.cpp | 2 +- cmake/FindGLEW.cmake | 10 +++++ cmake/FindOIDN.cmake | 21 ++++++++++ cmake/FindPortAudio.cmake | 16 ++++++++ CMakeOptions.txt => cmake/ModulesOptions.txt | 2 - 9 files changed, 64 insertions(+), 51 deletions(-) create mode 100644 cmake/FindGLEW.cmake create mode 100644 cmake/FindOIDN.cmake create mode 100644 cmake/FindPortAudio.cmake rename CMakeOptions.txt => cmake/ModulesOptions.txt (67%) diff --git a/3DEditor/CMakeLists.txt b/3DEditor/CMakeLists.txt index 356210b..4e22009 100644 --- a/3DEditor/CMakeLists.txt +++ b/3DEditor/CMakeLists.txt @@ -2,7 +2,7 @@ project(3DEditor) ### ---------------------- Externals --------------------- ### set(BINDINGS_INCLUDE ../Externals/glfw/include ../Externals) -set(BINDINGS_LIBS glfw Imgui) +set(BINDINGS_LIBS glfw Imgui OpenImageDenoise) ### ---------------------- Static Library --------------------- ### file(GLOB SOURCES "./private/*.cpp" "./private/*/*.cpp") @@ -13,7 +13,6 @@ add_library(${PROJECT_NAME} STATIC ${SOURCES} ${HEADERS}) target_include_directories(${PROJECT_NAME} PUBLIC ./public/ ${BINDINGS_INCLUDE} ./ext/) target_link_libraries(${PROJECT_NAME} PUBLIC Widgets RasterRender RayTracer) target_link_libraries(${PROJECT_NAME} PRIVATE ${BINDINGS_LIBS}) -target_link_libraries(${PROJECT_NAME} PRIVATE OpenImageDenoise) ### -------------------------- Applications -------------------------- ### file(GLOB APP_SOURCES "./applications/*.cpp") diff --git a/CMakeLists.txt b/CMakeLists.txt index a8086b5..bf93755 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,5 +1,5 @@ -cmake_minimum_required(VERSION 3.5) +cmake_minimum_required(VERSION 3.10) set(CMAKE_CXX_STANDARD 20) @@ -8,13 +8,20 @@ set(CMAKE_CXX_STANDARD 20) project(ModulesRoot) -include(CMakeOptions.txt) +include(cmake/ModulesOptions.txt) + +set(WINDOWS_LIBRARIES "../moduleswindowsl" CACHE STRING "Svn repository with windows libraries https://svn.riouxsvn.com/moduleswindowsl") + +include(cmake/FindGLEW.cmake) +include(cmake/FindOIDN.cmake) +include(cmake/FindPortAudio.cmake) + +add_subdirectory(Externals) add_subdirectory(Modules) add_subdirectory(Containers) add_subdirectory(Math) # add_subdirectory(Language) -add_subdirectory(Externals) add_subdirectory(Connection) add_subdirectory(Graphics) add_subdirectory(DataAnalysis) diff --git a/Externals/CMakeLists.txt b/Externals/CMakeLists.txt index ce5f9b4..bca8259 100644 --- a/Externals/CMakeLists.txt +++ b/Externals/CMakeLists.txt @@ -1,42 +1,5 @@ # find_package(ALSA REQUIRED) -if(CMAKE_SYSTEM_NAME STREQUAL "Windows") - message("Configuring for windows...") - message("Libraries path is - ${WINDOWS_LIBRARIES}") - - set(CMAKE_PREFIX_PATH "${WINDOWS_LIBRARIES}/glew-2.1.0") - find_package(GLEW REQUIRED) - set(GLEW_LIB ${GLEW_STATIC_LIBRARY_RELEASE} opengl32.lib PARENT_SCOPE) - - # Your relative paths - set(RELATIVE_INCLUDE_DIR "${WINDOWS_LIBRARIES}/portaudio/include") - set(RELATIVE_LIB "${WINDOWS_LIBRARIES}/portaudio_build/Debug/portaudio.lib") - - # Convert to absolute paths - get_filename_component(ABSOLUTE_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${RELATIVE_INCLUDE_DIR}" ABSOLUTE) - get_filename_component(ABSOLUTE_LIB "${CMAKE_CURRENT_SOURCE_DIR}/${RELATIVE_LIB}" ABSOLUTE) - - # Set absolute paths with respect to the parent scope - set(PORTAUDIO_INCLUDE_DIR "${ABSOLUTE_INCLUDE_DIR}" PARENT_SCOPE) - set(PORTAUDIO_LIB "${ABSOLUTE_LIB}" PARENT_SCOPE) -else() - find_package(GLEW REQUIRED) - set(GLEW_LIB ${GLEW_LIBRARIES} GL PARENT_SCOPE) - - set(PORTAUDIO_LIB portaudio PARENT_SCOPE) -endif() - -#add_subdirectory(glew/build/cmake/) -#target_compile_definitions(glew_s PUBLIC GLEW_NO_GLU) - -#add_subdirectory(unittest-cpp) -add_subdirectory(lalr) -if(CMAKE_SYSTEM_NAME STREQUAL "Windows") -else() - target_compile_options(UnitTest++ PUBLIC -Wno-error) -endif() - - add_subdirectory(glfw) project(Imgui) @@ -87,8 +50,4 @@ project(ImageIO) add_library(${PROJECT_NAME} INTERFACE) target_include_directories(${PROJECT_NAME} INTERFACE ./imageIO/) - -#set(OIDN_DEVICE_CPU ON) -#set(OIDN_STATIC_LIB ON) -#add_subdirectory(oidn) -find_package(OpenImageDenoise REQUIRED) +add_subdirectory(lalr) \ No newline at end of file diff --git a/Graphics/private/Window.cpp b/Graphics/private/Window.cpp index ac8e958..06f8d77 100644 --- a/Graphics/private/Window.cpp +++ b/Graphics/private/Window.cpp @@ -41,6 +41,7 @@ Window::Window(Vec2F size, const char* title) { // Initialize GLEW if (glewInit() != GLEW_OK) { printf("Failed to initialize GLEW\n"); + exit(1); return; } @@ -64,7 +65,9 @@ Window* Window::createWindow(Vec2F size, const char* title) { } count--; - glfwInitHint(GLFW_PLATFORM, GLFW_PLATFORM_X11); + #ifdef ENV_OS_LINUX + glfwInitHint(GLFW_PLATFORM, GLFW_PLATFORM_X11); + #endif // glfwInitHint(GLFW_WAYLAND_LIBDECOR, GLFW_WAYLAND_DISABLE_LIBDECOR); // Initialize GLFW diff --git a/Widgets/private/managers/UpdateManager.cpp b/Widgets/private/managers/UpdateManager.cpp index 4dcf24c..6898ee3 100644 --- a/Widgets/private/managers/UpdateManager.cpp +++ b/Widgets/private/managers/UpdateManager.cpp @@ -109,7 +109,7 @@ void UpdateManager::handleFocusChanges(Widget* root, EventHandler& events) { int mostCommonIdx = 0; if (!(path1.empty() || path2.empty())) { - while (path1[mostCommonIdx] == path2[mostCommonIdx] && mostCommonIdx < min(path1.size(), path2.size())) { + while (mostCommonIdx < min(path1.size(), path2.size()) && path1[mostCommonIdx] == path2[mostCommonIdx]) { mostCommonIdx++; } } diff --git a/cmake/FindGLEW.cmake b/cmake/FindGLEW.cmake new file mode 100644 index 0000000..d4bc483 --- /dev/null +++ b/cmake/FindGLEW.cmake @@ -0,0 +1,10 @@ +if(CMAKE_SYSTEM_NAME STREQUAL "Windows") + set(CMAKE_PREFIX_PATH "${WINDOWS_LIBRARIES}/glew-2.1.0") + + find_package(GLEW REQUIRED) + set(GLEW_LIB ${GLEW_STATIC_LIBRARY_RELEASE} opengl32.lib CACHE STRING "Path to PortAudio includes") + +else() + find_package(GLEW REQUIRED) + set(GLEW_LIB ${GLEW_LIBRARIES} GL CACHE STRING "Path to PortAudio includes") +endif() \ No newline at end of file diff --git a/cmake/FindOIDN.cmake b/cmake/FindOIDN.cmake new file mode 100644 index 0000000..5e57893 --- /dev/null +++ b/cmake/FindOIDN.cmake @@ -0,0 +1,21 @@ +#set(OIDN_DEVICE_CPU ON) +#set(OIDN_STATIC_LIB ON) +#add_subdirectory(oidn) + +if(CMAKE_SYSTEM_NAME STREQUAL "Windows") + set(CMAKE_PREFIX_PATH "${WINDOWS_LIBRARIES}/oidn-2.3.0.x64.windows") +endif() + +find_package(OpenImageDenoise REQUIRED) + + + +set(TARGETS_LIST OpenImageDenoise) + +foreach(TARGET ${TARGETS_LIST}) + if(TARGET ${TARGET}) + message("Found ${TARGET}.") + else() + message(ERROR "Not Found ${TARGET}.") + endif() +endforeach() \ No newline at end of file diff --git a/cmake/FindPortAudio.cmake b/cmake/FindPortAudio.cmake new file mode 100644 index 0000000..84d69bc --- /dev/null +++ b/cmake/FindPortAudio.cmake @@ -0,0 +1,16 @@ +if(CMAKE_SYSTEM_NAME STREQUAL "Windows") + # relative paths + set(RELATIVE_INCLUDE_DIR "${WINDOWS_LIBRARIES}/portaudio/include") + set(RELATIVE_LIB "${WINDOWS_LIBRARIES}/portaudio_build/Debug/portaudio.lib") + + # Convert to absolute paths + get_filename_component(ABSOLUTE_INCLUDE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/${RELATIVE_INCLUDE_DIR}" ABSOLUTE) + get_filename_component(ABSOLUTE_LIB "${CMAKE_CURRENT_SOURCE_DIR}/${RELATIVE_LIB}" ABSOLUTE) + + # Set absolute paths with respect to the parent scope + set(PORTAUDIO_INCLUDE_DIR "${ABSOLUTE_INCLUDE_DIR}" CACHE STRING "Path to PortAudio includes") + set(PORTAUDIO_LIB "${ABSOLUTE_LIB}" CACHE STRING "Path to PortAudio library") + +else() + set(PORTAUDIO_LIB portaudio CACHE STRING "Path to PortAudio library") +endif() \ No newline at end of file diff --git a/CMakeOptions.txt b/cmake/ModulesOptions.txt similarity index 67% rename from CMakeOptions.txt rename to cmake/ModulesOptions.txt index 2a080ad..f05b8a7 100644 --- a/CMakeOptions.txt +++ b/cmake/ModulesOptions.txt @@ -1,8 +1,6 @@ option(MODULES_MEMORY_DEBUG "Debug memory" OFF) option(MODULES_MEMORY_DEBUG_STACK_TRACE "Record stack info on memory debug" OFF) -set(WINDOWS_LIBRARIES "../../ModulesWindowsLibraries" CACHE STRING "Svn repository with windows libraries https://svn.riouxsvn.com/moduleswindowsl") - if (MODULES_MEMORY_DEBUG) add_compile_definitions(MEM_DEBUG) endif ()