diff --git a/cmake/retrieve_files.cmake b/cmake/retrieve_files.cmake index 50014de..1bc7bcc 100644 --- a/cmake/retrieve_files.cmake +++ b/cmake/retrieve_files.cmake @@ -17,7 +17,15 @@ function(is_current_platform platform is_match) set(matches TRUE) endif() elseif(platform STREQUAL "mac") - if(APPLE) + if(APPLE AND NOT IOS) + set(matches TRUE) + endif() + elseif(platform STREQUAL "ios") + if(IOS) + set(matches TRUE) + endif() + elseif (platform STREQUAL "android") + if(ANDROID) set(matches TRUE) endif() elseif(platform STREQUAL "mobile") @@ -25,7 +33,7 @@ function(is_current_platform platform is_match) set(matches TRUE) endif() elseif(platform STREQUAL "desktop") - if(WIN32 OR (UNIX AND NOT APPLE)) + if(WIN32 OR (UNIX AND NOT APPLE) OR (APPLE AND NOT IOS)) set(matches TRUE) endif() else() @@ -77,7 +85,7 @@ function(retrieve_files_custom path extension out_files) foreach(dir_name IN LISTS dir_components) # 检查是否是平台相关目录 - if(dir_name MATCHES "^(windows|linux|mac|mobile|desktop)$") + if(dir_name MATCHES "^(windows|linux|mac|ios|android|mobile|desktop)$") set(found_platform_dir TRUE) is_current_platform(${dir_name} platform_matches) if(NOT platform_matches) diff --git a/src/core/CMakeLists.txt b/src/core/CMakeLists.txt index 162eae2..4da3422 100644 --- a/src/core/CMakeLists.txt +++ b/src/core/CMakeLists.txt @@ -1,19 +1,18 @@ project(mirage_core) set(CMAKE_CXX_STANDARD 26) -find_package(harfbuzz REQUIRED) +find_package(HarfBuzz REQUIRED) find_package(Eigen3 REQUIRED) find_package(spdlog REQUIRED) find_package(Boost REQUIRED) find_package(Freetype REQUIRED) find_package(Vulkan REQUIRED) -find_package(glfw3 REQUIRED) set(RENDERER_SOURCES "") retrieve_files(${CMAKE_CURRENT_SOURCE_DIR} RENDERER_SOURCES) add_library(${PROJECT_NAME} STATIC ${RENDERER_SOURCES}) -target_link_libraries(${PROJECT_NAME} PUBLIC Freetype::Freetype glfw harfbuzz Eigen3::Eigen spdlog::spdlog msdfgen-full Boost::boost Vulkan::Vulkan LLGL) +target_link_libraries(${PROJECT_NAME} PUBLIC Freetype::Freetype harfbuzz::harfbuzz Eigen3::Eigen spdlog::spdlog msdfgen-full Boost::boost Vulkan::Vulkan LLGL) target_include_directories(${PROJECT_NAME} PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}) target_compile_definitions(${PROJECT_NAME} PRIVATE NOMINMAX) add_os_definitions(${PROJECT_NAME}) diff --git a/src/core/misc/mapped_file.cpp b/src/core/misc/mapped_file.cpp index 5abfe29..06b2500 100644 --- a/src/core/misc/mapped_file.cpp +++ b/src/core/misc/mapped_file.cpp @@ -144,7 +144,7 @@ namespace mirage { throw std::runtime_error("Failed to open file"); } - struct stat sb; + struct stat sb{}; if (fstat(fd, &sb) == -1) { cleanup(); throw std::runtime_error("Failed to get file size"); diff --git a/src/core/misc/mapped_file.h b/src/core/misc/mapped_file.h index d6b821d..85786fa 100644 --- a/src/core/misc/mapped_file.h +++ b/src/core/misc/mapped_file.h @@ -5,10 +5,10 @@ #include #include -#ifdef _WIN32 -#include - namespace mirage { +#if MIRAGE_PLATFORM_WINDOWS + #include + class mapped_file_win { public: mapped_file_win();