cmake_minimum_required(VERSION 3.16)

# Specify the project name and C++ language
project(Cinema VERSION 0.1 LANGUAGES CXX)

# Extend module path to allow includes without the "cmake/" prefix
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake")

# Include project variables
include(setup/ProjectVariables)

# Include helper functions
include(helpers/PrintMessages)

# Include dependency management and configuration
include(dependencies/FindPackages)
include(setup/Config)

# Include path and file management
include(paths/PathsAndIncludes)
include(paths/GroupFilesByLocation)
include(paths/CombineFileGroups)

# Include file generation
include(generation/ClangdSetup)
include(generation/ConfigureFiles)
include(generation/ProjectTree)
include(generation/CountLines)

# Include UI generation
include(generation/UiFiles)

# Include project setup files
include(setup/Translations)
include(setup/TargetSetup)

# Print an important message about the tests schema directory

# Enable testing
enable_testing()

print_important_message("ENABLE TESTS CLASS DIRECTORY")

# Add the tests class directory
add_subdirectory(tests_class)

print_important_message("ENABLE TESTS SCHEMA DIRECTORY")

# Add the tests schema directory
add_subdirectory(tests_schema)

