# SPDX-License-Identifier: MPL-2.0
#
# Bibliothèque de disposition de l'arborescence SEQUA (ADR 0010).
# Fournit : recherche de la racine (sequa-root.json), chemins relatifs
# (core/, render/, studio/, engines/<moteur>/), noms d'exécutables et
# de modules selon la plateforme. Utilisée par le Core, le Studio host
# et les adaptateurs.

add_library(sequa_layout
    src/layout.cpp)
add_library(sequa::layout ALIAS sequa_layout)

target_include_directories(sequa_layout
    PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include")
target_compile_features(sequa_layout PUBLIC cxx_std_20)

if(WIN32)
    target_link_libraries(sequa_layout PRIVATE shell32) # CommandLineToArgvW
elseif(NOT APPLE)
    # dladdr pour module_path.
    target_link_libraries(sequa_layout PUBLIC ${CMAKE_DL_LIBS})
endif()

sequa_target_defaults(sequa_layout)

if(SEQUA_BUILD_TESTS)
    add_executable(sequa_layout_tests
        tests/main.cpp
        tests/test_layout.cpp)
    target_link_libraries(sequa_layout_tests PRIVATE sequa::layout doctest::doctest)
    sequa_target_defaults(sequa_layout_tests)
    doctest_discover_tests(sequa_layout_tests)
endif()