cmake_minimum_required(VERSION 3.22) project(FikoYTEngineeringPlatform VERSION 0.1.0 DESCRIPTION "FikoYT Engineering Platform - Native CAD/CAM/CAE" LANGUAGES CXX C) # Set C++ standard properly for MSVC (use CACHE to ensure it's recognized) set(CMAKE_CXX_STANDARD 23 CACHE STRING "C++ standard version" FORCE) set(CMAKE_CXX_STANDARD_REQUIRED ON CACHE BOOL "" FORCE) set(CMAKE_CXX_EXTENSIONS OFF) set(FIKO_VULKAN_SDK "D:/__sistem__/ProgramFiles/vulkan1.3" CACHE PATH "Vulkan SDK dizini") set(FIKO_VCPKG "D:/__sistem__/ProgramFiles/vcpkg/installed/x64-windows" CACHE PATH "vcpkg kurulum dizini (OCCT)") list(APPEND CMAKE_PREFIX_PATH "${FIKO_VCPKG}") if(MSVC) add_compile_options(/W4 /permissive- /Zc:__cplusplus /EHsc /utf-8 /MP) # Release (dagitim): tam optimize — /GL + /LTCG (yavas link, en hizli calisma) add_compile_options($<$:/O2> $<$:/GL> $<$:/arch:AVX2>) add_link_options($<$:/LTCG>) # Hizli (gunluk gelistirme): /O2 korunur (runtime perf) AMA /GL+/LTCG YOK -> # incremental link calisir. /Zi + /DEBUG:FASTLINK + /INCREMENTAL + /OPT:NOREF /OPT:NOICF # ile tek-dosya degisince link saniyeler surer (dakika degil). NDEBUG = Release ile ayni # (assert kapali). NOT: ozel config'in CMAKE_*_FLAGS_HIZLI cache degiskenleri project()'te # bos olusturuluyor -> link bayraklari icin add_link_options generator-expr kullaniyoruz. add_compile_options($<$:/O2> $<$:/arch:AVX2> $<$:/Zi>) add_compile_definitions($<$:NDEBUG>) add_link_options( $<$:/INCREMENTAL> $<$:/DEBUG:FASTLINK> $<$:/OPT:NOREF> $<$:/OPT:NOICF>) add_compile_definitions(NOMINMAX WIN32_LEAN_AND_MEAN UNICODE _UNICODE) endif() enable_testing() add_subdirectory(ucuncu_taraf/lua) add_subdirectory(ucuncu_taraf/opencamlib) add_subdirectory(ucuncu_taraf/miniz) add_subdirectory(ucuncu_taraf/simdjson) add_subdirectory(ucuncu_taraf/splishsplash) add_subdirectory(motor/core) add_subdirectory(motor/parametre) add_subdirectory(motor/mcp) add_subdirectory(motor/orkestra) add_subdirectory(motor/kinematik) add_subdirectory(motor/istakip) add_subdirectory(motor/montaj) add_subdirectory(motor/cae) add_subdirectory(motor/ayar) add_subdirectory(motor/girdi) add_subdirectory(motor/cekirdek) add_subdirectory(motor/platform) add_subdirectory(motor/render) add_subdirectory(motor/geometri) add_subdirectory(motor/sketch) add_subdirectory(motor/sahne) add_subdirectory(motor/baglam) add_subdirectory(motor/parca) add_subdirectory(motor/pafta) add_subdirectory(motor/pmi) add_subdirectory(motor/malzeme) add_subdirectory(motor/gsd) add_subdirectory(motor/analiz) add_subdirectory(motor/zeka) add_subdirectory(motor/dokum) add_subdirectory(motor/cam) add_subdirectory(motor/io) add_subdirectory(motor/kutuk) add_subdirectory(motor/strafor) add_subdirectory(motor/ui) add_subdirectory(motor/betik) add_subdirectory(motor/eklenti) add_subdirectory(uygulama/fikocad) add_subdirectory(uygulama/fiko_updater) add_subdirectory(uygulama/fiko_lisans) add_subdirectory(uygulama/fiko_mcp) add_subdirectory(uygulama/fikatia) add_subdirectory(uygulama/eklentiler/ornek_eklenti)