blob: b69df1446cdf41b668a4b360b6e71d60204a942c [file] [log] [blame]
Manish Pandey65fe3642025-03-21 12:44:42 +00001#
2# Copyright The Transfer List Library Contributors
3#
4# SPDX-License-Identifier: MIT OR GPL-2.0-or-later
5#
6
7cmake_minimum_required(VERSION 3.15)
8
9project(libtl VERSION 0.9 LANGUAGES C CXX ASM)
10
11#
12# Set global flags.
13#
14set(CMAKE_C_STANDARD 11)
15set(CMAKE_C_STANDARD_REQUIRED TRUE)
16set(CMAKE_C_EXTENSIONS TRUE)
17
18add_library(cxx_compiler_flags INTERFACE)
19target_compile_features(cxx_compiler_flags INTERFACE cxx_std_11)
20
21SET(TARGET_GROUP release CACHE STRING "Specify the Build Target [\"release\" by default]")
22
23add_library(tl STATIC "${CMAKE_CURRENT_SOURCE_DIR}/src/transfer_list.c")
Harrison Mutaibd05e572025-04-16 14:20:35 +000024target_include_directories(tl
25 PUBLIC
26 ${PROJECT_SOURCE_DIR}/include
27)
28
Manish Pandey65fe3642025-03-21 12:44:42 +000029target_link_libraries(tl PUBLIC cxx_compiler_flags)
30
31if(TARGET_GROUP STREQUAL test)
32 include(CTest)
33
34 # Check if local unity/ directory exists
35 if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/unity/CMakeLists.txt")
36 message(STATUS "Using local Unity framework.")
37 add_subdirectory(unity)
38 else()
39 message(STATUS "Fetching Unity framework using FetchContent...")
40 include(FetchContent)
41 FetchContent_Declare(
42 unity
43 GIT_REPOSITORY https://github.com/ThrowTheSwitch/Unity.git
44 GIT_TAG master
45 )
46 FetchContent_MakeAvailable(unity)
47 endif()
48
49 add_subdirectory(test)
50endif()