mtl/CMakeLists.txt
Myles Busig c7918a2b8b Update CMakeLists.txt to use globbing, and support arch. dependent files
CONFIGURE_DEPENDS option was added in CMake v3.12. This option allows the
build system to automatically re-run CMake if the glob changes, solving the
major issue with globbing. May have a performance impact, but it should be
negligible compared to the time spent building.
2024-03-10 21:55:50 -06:00

30 lines
1.1 KiB
CMake

cmake_minimum_required(VERSION 3.5)
project(mtl LANGUAGES CXX C ASM)
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
message("Compiling MTL for ${CMAKE_SYSTEM_PROCESSOR}")
# CONFIGURE_DEPENDS option was added in CMake v3.12. This option allows the
# build system to automatically re-run CMake if the glob changes, solving the
# major issue with globbing. May have a performance impact, but it should be
# negligible compared to the time spent building.
file(GLOB mtl_sources_common LIST_DIRECTORIES false CONFIGURE_DEPENDS src/*.cpp src/*.c src/*.s)
file(GLOB mtl_sources_armv4t LIST_DIRECTORIES false CONFIGURE_DEPENDS src/armv4t/*.cpp src/armv4t/*.c src/armv4t/*.s)
set(mtl_include_common "include")
set(mtl_include_armv4t "include/armv4t")
add_library(${PROJECT_NAME} STATIC)
target_sources(${PROJECT_NAME} PRIVATE "${mtl_sources_common}")
target_include_directories(${PROJECT_NAME} PUBLIC "${mtl_include_common}")
if (CMAKE_SYSTEM_PROCESSOR STREQUAL "armv4t")
target_sources(${PROJECT_NAME} PRIVATE "${mtl_sources_armv4t}")
target_include_directories(${PROJECT_NAME} PUBLIC "${mtl_include_armv4t}")
endif()
# TODO: Support installing library