cmake_minimum_required(VERSION 3.15) cmake_policy(SET CMP0167 NEW) project(mirage LANGUAGES C CXX) set(CMAKE_CXX_STANDARD 26) if (MSVC) # MSVC编译器设置C++标准 add_compile_options(/std:c++latest) # 设置utf-8编码 add_compile_options(/utf-8) endif () set(MSDFGEN_USE_SKIA OFF CACHE BOOL "Use Skia for MSDFGen" FORCE) set(MSDFGEN_USE_VCPKG OFF CACHE BOOL "Use VCPKG for MSDFGen" FORCE) set(MSDFGEN_USE_OPENMP ON CACHE BOOL "Use OpenMP for MSDFGen" FORCE) set(MSDFGEN_BUILD_STANDALONE ON CACHE BOOL "Build MSDFGen standalone" FORCE) # 配置输出目录 set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib) # 设置全局着色器输出目录 set(SHADER_OUTPUT_DIR "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/resource/shaders" CACHE PATH "着色器编译输出路径") include(cmake/retrieve_files.cmake) include(cmake/detect_os.cmake) include(cmake/configure_glfw_native.cmake) include(cmake/compile_shaders.cmake) include(cmake/config_macos.cmake) # 如果是Debug模式, 添加宏定义 if (CMAKE_BUILD_TYPE STREQUAL "Debug") add_definitions(-DDEBUG=1) else () add_definitions(-DDEBUG=0) endif () add_subdirectory(third_party/LLGL) add_subdirectory(third_party/msdfgen) add_subdirectory(src/core) set(BUILD_EXAMPLE FALSE CACHE BOOL "Build example") if (BUILD_EXAMPLE) add_subdirectory(example) endif ()