add_library(fiko_dokum STATIC src/malzeme.cpp src/voxel_kafes.cpp src/voxelize.cpp src/katilasma_fdm.cpp src/katilasma_gpu.cpp src/dolum.cpp src/dokum_simulasyonu.cpp src/voxel_gorsel.cpp src/sivi_yuzey.cpp src/methoding.cpp src/dokum_kurulum.cpp src/hava_analiz.cpp src/porozite.cpp src/sonuc_katmanlari.cpp src/sph_dolum.cpp src/sph_gpu.cpp src/gerilme.cpp ) add_library(fiko::dokum ALIAS fiko_dokum) set_source_files_properties(src/sph_dolum.cpp PROPERTIES COMPILE_DEFINITIONS FIKO_SPH_PERF) target_include_directories(fiko_dokum PUBLIC include) target_link_libraries(fiko_dokum PUBLIC fiko::core fiko::cekirdek fiko::render PRIVATE fiko::geometri fiko::splishsplash) # Katılaşma FDM döngüleri OpenMP ile paralel (büyük gridlerde; if-eşiği kodda). find_package(OpenMP QUIET) if(OpenMP_CXX_FOUND) target_link_libraries(fiko_dokum PRIVATE OpenMP::OpenMP_CXX) endif() add_executable(fiko_dokum_test test/test_main.cpp test/test_dokum.cpp ) target_link_libraries(fiko_dokum_test PRIVATE fiko_dokum fiko::geometri) target_include_directories(fiko_dokum_test PRIVATE ${CMAKE_SOURCE_DIR}/motor/core/test) add_test(NAME dokum COMMAND fiko_dokum_test) set_tests_properties(dokum PROPERTIES ENVIRONMENT_MODIFICATION "PATH=path_list_prepend:${FIKO_VCPKG}/bin") add_executable(fiko_sivi_test test/test_main.cpp test/test_sivi_yuzey.cpp ) target_link_libraries(fiko_sivi_test PRIVATE fiko_dokum) target_include_directories(fiko_sivi_test PRIVATE ${CMAKE_SOURCE_DIR}/motor/core/test) add_test(NAME sivi COMMAND fiko_sivi_test) set_tests_properties(sivi PROPERTIES ENVIRONMENT_MODIFICATION "PATH=path_list_prepend:${FIKO_VCPKG}/bin") add_executable(fiko_hava_test test/test_main.cpp test/test_hava.cpp ) target_link_libraries(fiko_hava_test PRIVATE fiko_dokum) target_include_directories(fiko_hava_test PRIVATE ${CMAKE_SOURCE_DIR}/motor/core/test) add_test(NAME hava COMMAND fiko_hava_test) set_tests_properties(hava PROPERTIES ENVIRONMENT_MODIFICATION "PATH=path_list_prepend:${FIKO_VCPKG}/bin") add_executable(fiko_porozite_test test/test_main.cpp test/test_porozite.cpp ) target_link_libraries(fiko_porozite_test PRIVATE fiko_dokum) target_include_directories(fiko_porozite_test PRIVATE ${CMAKE_SOURCE_DIR}/motor/core/test) add_test(NAME porozite COMMAND fiko_porozite_test) set_tests_properties(porozite PROPERTIES ENVIRONMENT_MODIFICATION "PATH=path_list_prepend:${FIKO_VCPKG}/bin") add_executable(fiko_sph_test test/test_main.cpp test/test_sph.cpp ) target_link_libraries(fiko_sph_test PRIVATE fiko_dokum) target_include_directories(fiko_sph_test PRIVATE ${CMAKE_SOURCE_DIR}/motor/core/test) add_test(NAME sph COMMAND fiko_sph_test) set_tests_properties(sph PROPERTIES ENVIRONMENT_MODIFICATION "PATH=path_list_prepend:${FIKO_VCPKG}/bin") add_executable(fiko_katman_test test/test_main.cpp test/test_katman.cpp ) target_link_libraries(fiko_katman_test PRIVATE fiko_dokum) target_include_directories(fiko_katman_test PRIVATE ${CMAKE_SOURCE_DIR}/motor/core/test) add_test(NAME katman COMMAND fiko_katman_test) set_tests_properties(katman PROPERTIES ENVIRONMENT_MODIFICATION "PATH=path_list_prepend:${FIKO_VCPKG}/bin") add_executable(fiko_gerilme_test test/test_main.cpp test/test_gerilme.cpp ) target_link_libraries(fiko_gerilme_test PRIVATE fiko_dokum) target_include_directories(fiko_gerilme_test PRIVATE ${CMAKE_SOURCE_DIR}/motor/core/test) add_test(NAME gerilme COMMAND fiko_gerilme_test) set_tests_properties(gerilme PROPERTIES ENVIRONMENT_MODIFICATION "PATH=path_list_prepend:${FIKO_VCPKG}/bin") # Katılaşma GPU (Vulkan compute) shader aritmetiği + Stefan-Neumann doğrulama. # GPU cihazı test ortamında yok → shader f32 aynası ile fizik doğrulanır. add_executable(fiko_katilasma_gpu_test test/test_main.cpp test/test_katilasma_gpu.cpp ) target_link_libraries(fiko_katilasma_gpu_test PRIVATE fiko_dokum) target_include_directories(fiko_katilasma_gpu_test PRIVATE ${CMAKE_SOURCE_DIR}/motor/core/test) add_test(NAME katilasma_gpu COMMAND fiko_katilasma_gpu_test) set_tests_properties(katilasma_gpu PROPERTIES ENVIRONMENT_MODIFICATION "PATH=path_list_prepend:${FIKO_VCPKG}/bin") # GPU SPH (Vulkan compute PBF) — kernel matematiği (Poly6/Spiky/density-constraint) # + çıktı sözleşmesi doğrulaması. GPU cihazı test ortamında yok → gerçek dispatch # kullanıcı GPU'sunda koşar (sph_*.comp SPIR-V app foreach'ine eklendi). add_executable(fiko_sph_gpu_test test/test_main.cpp test/test_sph_gpu.cpp ) target_link_libraries(fiko_sph_gpu_test PRIVATE fiko_dokum) target_include_directories(fiko_sph_gpu_test PRIVATE ${CMAKE_SOURCE_DIR}/motor/core/test) add_test(NAME sph_gpu COMMAND fiko_sph_gpu_test) set_tests_properties(sph_gpu PROPERTIES ENVIRONMENT_MODIFICATION "PATH=path_list_prepend:${FIKO_VCPKG}/bin")