cmake_minimum_required(VERSION 3.21)

project(libpas)

set(CMAKE_CXX_STANDARD 20 CACHE STRING "C++ standard to be used")
add_compile_options(-Wall -Werror)

# Get sources
AUX_SOURCE_DIRECTORY( "src/libpas"       libpasSources   )
AUX_SOURCE_DIRECTORY( "src/chaos"        chaosSources    )
AUX_SOURCE_DIRECTORY( "src/mbmalloc"     mbmallocSources )
AUX_SOURCE_DIRECTORY( "src/test"         testSources     )
AUX_SOURCE_DIRECTORY( "src/toys"         toysSources     )
AUX_SOURCE_DIRECTORY( "src/verifier"     verifierSources )

# Directories
include_directories(    ${CMAKE_SOURCE_DIR}/src/libpas 
                        ${CMAKE_SOURCE_DIR}/src/verifier
                        ${CMAKE_SOURCE_DIR}/src/chaos 
                        ${CMAKE_SOURCE_DIR}/src/toys
                        ${CMAKE_SOURCE_DIR}/src/test
                        ${CMAKE_SOURCE_DIR}/src/mbmalloc )

link_directories(       ${CMAKE_SOURCE_DIR}/src/libpas 
                        ${CMAKE_SOURCE_DIR}/src/verifier
                        ${CMAKE_SOURCE_DIR}/src/chaos 
                        ${CMAKE_SOURCE_DIR}/src/toys
                        ${CMAKE_SOURCE_DIR}/src/test
                        ${CMAKE_SOURCE_DIR}/src/mbmalloc )

# Create libraries
add_library(pas_lib                                 SHARED ${libpasSources})
add_library(chaos_lib                               SHARED ${chaosSources} )
add_library(verifier_lib                            SHARED ${verifierSources} )
add_library(mbmalloc_bmalloc                        SHARED ${CMAKE_SOURCE_DIR}/src/mbmalloc/mbmalloc_bmalloc.c)
add_library(mbmalloc_hotbit                         SHARED ${CMAKE_SOURCE_DIR}/src/mbmalloc/mbmalloc_hotbit.c)
add_library(mbmalloc_iso_common_primitive           SHARED ${CMAKE_SOURCE_DIR}/src/mbmalloc/mbmalloc_iso_common_primitive.c)
add_library(mbmalloc_iso_common_primitive_verified  SHARED ${CMAKE_SOURCE_DIR}/src/mbmalloc/mbmalloc_iso_common_primitive.c)

# Create executables
add_executable(test_pas ${testSources} )
add_executable(chaos    ${chaosSources} )

# Link Libraries
target_link_libraries(test_pas verifier_lib pas_lib chaos_lib)
target_link_libraries(verifier_lib pas_lib)
target_link_libraries(chaos_lib pas_lib)
target_link_libraries(chaos pas_lib)
target_link_libraries(mbmalloc_bmalloc pas_lib)
target_link_libraries(mbmalloc_hotbit pas_lib)
target_link_libraries(mbmalloc_iso_common_primitive pas_lib)
target_link_libraries(mbmalloc_iso_common_primitive_verified verifier_lib pas_lib)