diff --git a/CMakeLists.txt b/CMakeLists.txt index 576b1c3..375f407 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,7 @@ cmake_minimum_required(VERSION 3.28 FATAL_ERROR) include(cmake/SetCompilerSettings.cmake) include(cmake/SetupVulkan.cmake) include(cmake/Filter.cmake) +include(ExternalProject) set(CMAKE_POLICY_DEFAULT_CMP0077 NEW) @@ -80,19 +81,19 @@ SetupVulkan(openVulkanoCpp) set_property(TARGET openVulkanoCpp PROPERTY CXX_STANDARD 17) if (NOT ANDROID AND NOT IOS) - #Find_Package(libjpeg-turbo) # Libjpeg-turbo add_dependencies(openVulkanoCpp libjpeg-turbo) ExternalProject_Get_Property(libjpeg-turbo INSTALL_DIR) include_directories(${INSTALL_DIR}/include) link_directories(${INSTALL_DIR}/lib ${INSTALL_DIR}/lib64) - target_link_libraries(openVulkanoCpp PRIVATE ${INSTALL_DIR}/lib/libturbojpeg.a) + if (WIN32) + target_link_libraries(openVulkanoCpp PRIVATE ${INSTALL_DIR}/lib/turbojpeg.lib) + else() + target_link_libraries(openVulkanoCpp PRIVATE ${INSTALL_DIR}/lib/libturbojpeg.a) + endif() target_include_directories(openVulkanoCpp PRIVATE ${OpenCV_INCLUDE_DIRS}) target_link_libraries(openVulkanoCpp PRIVATE glfw ${OpenCV_LIBS} pugixml) - #if (libjpeg-turbo_FOUND) - # target_link_libraries(openVulkanoCpp PRIVATE libjpeg-turbo::turbojpeg) - #endif() target_link_libraries(openVulkanoCpp PRIVATE assimp) add_compile_definitions(GLM_FORCE_AVX2) target_link_libraries(openVulkanoCpp PRIVATE ftxui::screen ftxui::dom ftxui::component) @@ -117,8 +118,30 @@ find_package(ZLIB REQUIRED) target_include_directories(openVulkanoCpp PRIVATE ${LibArchive_INCLUDE_DIR}) target_link_libraries(openVulkanoCpp PRIVATE magic_enum yaml-cpp spdlog glm pugixml ${LibArchive_LIBRARIES} ${ZLIB_LIBRARIES} stb eigen utf8cpp imgui_internal TracyClient stud-uuid) + +if(WIN32) + # lz4 + # NOTE(vb): There must be a better way of linking with lz4... + target_link_libraries(openVulkanoCpp PRIVATE ${CMAKE_BINARY_DIR}/deps/lz4-build/Debug/lz4.lib) + + # Zstd + find_package(Zstd REQUIRED) + target_include_directories(openVulkanoCpp PRIVATE ${Zstd_INCLUDE_DIR}) + target_link_libraries(openVulkanoCpp PRIVATE $,zstd::libzstd_shared,zstd::libzstd_static>) + + # Ws2_32 + target_link_libraries(openVulkanoCpp PRIVATE Ws2_32) + + # Copy dlls to the exe directory + add_custom_command(TARGET openVulkanoCpp POST_BUILD + COMMAND ${CMAKE_COMMAND} -E copy $ $ $ + COMMAND_EXPAND_LISTS + ) +endif() + add_compile_definitions(GLM_FORCE_INTRINSICS) add_compile_definitions(GLM_FORCE_SILENT_WARNINGS) +add_compile_definitions(NOMINMAX) add_compile_definitions(LIBARCHIVE_STATIC) if(CMAKE_BUILD_TYPE STREQUAL "Debug")