cmake_minimum_required(VERSION 3.10) project(vibe5_metal) # C++ estándar set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED True) # Buscar SDL3 find_package(SDL3 REQUIRED CONFIG REQUIRED COMPONENTS SDL3) # Crear ejecutable principal add_executable(vibe5_metal source/main.cpp) # Solo en macOS, usar Objective-C++ if(APPLE) set_source_files_properties(source/main.cpp PROPERTIES COMPILE_FLAGS "-x objective-c++") # Frameworks necesarios en macOS find_library(METAL_FRAMEWORK Metal) find_library(QUARTZCORE_FRAMEWORK QuartzCore) find_library(FOUNDATION_FRAMEWORK Foundation) find_library(APPKIT_FRAMEWORK AppKit) target_link_libraries(vibe5_metal SDL3::SDL3 ${METAL_FRAMEWORK} ${QUARTZCORE_FRAMEWORK} ${FOUNDATION_FRAMEWORK} ${APPKIT_FRAMEWORK} ) else() target_link_libraries(vibe5_metal SDL3::SDL3) endif() # Definir macro para macOS if(APPLE) target_compile_definitions(vibe5_metal PRIVATE __APPLE__) endif() # Ubicación del ejecutable set_target_properties(vibe5_metal PROPERTIES RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR})