cmake_minimum_required(VERSION 3.20)
project(
  arena
  VERSION 1.0
  LANGUAGES C)

set(CMAKE_C_STANDARD 11)
set(CMAKE_C_STANDARD_REQUIRED ON)

# ------------------------------------------------
# Detectar si este proyecto es el principal
# ------------------------------------------------
if(CMAKE_SOURCE_DIR STREQUAL PROJECT_SOURCE_DIR)
  set(ARENA_IS_TOP_LEVEL ON)
else()
  set(ARENA_IS_TOP_LEVEL OFF)
endif()

# Opciones
option(ARRAYLIST_BUILD_TESTS "Build arena tests" ${ARENA_IS_TOP_LEVEL})
option(ARRAYLIST_ENABLE_SANITIZERS "Enable sanitizers for tests" ON)

# Librería
add_library(arena src/arena.c)

target_include_directories(
  arena PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
               $<INSTALL_INTERFACE:include>)

target_compile_options(arena PRIVATE -Wall -Wextra -Wpedantic)

# ------------------------
# Testing
# ------------------------
if(ARENA_BUILD_TESTS)
  enable_testing()
  add_subdirectory(test)
endif()
