cmake_minimum_required(VERSION 3.10)
project(OCPbasicMaster)

# Load external configuration settings
include(config.cmake)

# Versionen aus der Datei laden
include(versionNumbers.cmake)

# Set the C++ standard to C++11
set(CMAKE_CXX_STANDARD 11)

# Optional: Enforce C++11 as the minimum standard
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# Optional: Disable compiler extensions for stricter standard compliance
set(CMAKE_CXX_EXTENSIONS OFF)

# Add the subdirectories
add_subdirectory(src/lapack_wrapper)
add_subdirectory(src/IPbasic)
add_subdirectory(src/OCPbasic)
add_subdirectory(examples/examples_IPbasic/SimpleTestIPBasic)
add_subdirectory(examples/examples_IPbasic/SimpleTestIPBasic2)
add_subdirectory(examples/examples_IPbasic/SimpleTestIPBasicDense)
add_subdirectory(examples/examples_IPbasic/SimpleTestIPBasicRestoration)
add_subdirectory(examples/examples_OCPbasic/MinimumEnergy)
add_subdirectory(examples/examples_OCPbasic/SimpleKinModel)

# Optionally enable installation targets
option(BUILD_ALL "Build all components" OFF)
if(BUILD_ALL)
    add_subdirectory(src/lapack_wrapper)
    add_subdirectory(src/IPbasic)
    add_subdirectory(src/OCPbasic)
endif()
