2024-08-03 07:54:28 +01:00
|
|
|
cmake_minimum_required(VERSION 3.25)
|
2026-03-16 10:35:43 +00:00
|
|
|
project(fx C)
|
2024-08-03 07:54:28 +01:00
|
|
|
|
2024-12-10 22:26:52 +00:00
|
|
|
include (TestBigEndian)
|
|
|
|
|
|
2025-07-28 22:24:46 +01:00
|
|
|
set(CMAKE_C_STANDARD 99)
|
|
|
|
|
set(CMAKE_C_EXTENSIONS OFF)
|
2025-07-28 22:27:24 +01:00
|
|
|
|
|
|
|
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake)
|
2024-11-14 16:56:12 +00:00
|
|
|
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
|
|
|
|
|
2026-05-02 21:02:10 +01:00
|
|
|
set(fx_all_assemblies
|
2026-05-03 13:11:22 +01:00
|
|
|
fx.runtime
|
2026-05-03 14:51:11 +01:00
|
|
|
fx.collections
|
2026-05-03 16:29:23 +01:00
|
|
|
fx.compression
|
2026-05-03 16:48:42 +01:00
|
|
|
fx.io
|
2026-05-03 16:49:23 +01:00
|
|
|
fx.serial
|
|
|
|
|
fx.term)
|
2026-05-02 21:02:10 +01:00
|
|
|
|
|
|
|
|
if (NOT DEFINED fx_assemblies)
|
|
|
|
|
set(fx_assemblies ${fx_all_assemblies})
|
2026-04-01 19:02:04 +01:00
|
|
|
endif ()
|
|
|
|
|
|
|
|
|
|
if (NOT DEFINED fx_enable_floating_point)
|
|
|
|
|
set(fx_enable_floating_point 1)
|
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
|
|
if (NOT DEFINED fx_enable_tests)
|
|
|
|
|
set(fx_enable_tests 1)
|
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
|
|
message(STATUS "Floating point support: ${fx_enable_floating_point}")
|
2024-08-03 07:54:28 +01:00
|
|
|
|
2026-03-16 10:35:43 +00:00
|
|
|
set(fx_system_name ${CMAKE_SYSTEM_NAME})
|
|
|
|
|
string(TOLOWER ${fx_system_name} fx_system_name)
|
2024-08-03 07:54:28 +01:00
|
|
|
|
2026-03-16 10:35:43 +00:00
|
|
|
message(STATUS "System name: ${fx_system_name}")
|
2024-10-24 21:33:19 +01:00
|
|
|
|
2024-11-14 18:33:51 +00:00
|
|
|
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
|
|
|
|
|
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
|
|
|
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
|
|
|
|
|
|
2026-05-03 13:11:22 +01:00
|
|
|
include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/Templates.cmake)
|
|
|
|
|
|
|
|
|
|
if ("fx.runtime" IN_LIST fx_assemblies)
|
|
|
|
|
add_fx_assembly(
|
|
|
|
|
NAME fx.runtime
|
|
|
|
|
NAMESPACES fx fx.reflection)
|
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
|
|
if ("fx.collections" IN_LIST fx_assemblies)
|
|
|
|
|
add_fx_assembly(
|
|
|
|
|
NAME fx.collections
|
|
|
|
|
NAMESPACES fx.collections
|
|
|
|
|
DEPENDENCIES fx.runtime)
|
|
|
|
|
endif ()
|
|
|
|
|
|
2026-05-03 14:51:11 +01:00
|
|
|
if ("fx.io" IN_LIST fx_assemblies)
|
|
|
|
|
add_fx_assembly(
|
|
|
|
|
NAME fx.io
|
|
|
|
|
NAMESPACES fx.io
|
|
|
|
|
DEPENDENCIES fx.runtime)
|
|
|
|
|
endif ()
|
|
|
|
|
|
2026-05-03 16:29:23 +01:00
|
|
|
if ("fx.compression" IN_LIST fx_assemblies)
|
|
|
|
|
add_fx_assembly(
|
|
|
|
|
NAME fx.compression
|
|
|
|
|
NAMESPACES fx.compression
|
|
|
|
|
DEPENDENCIES fx.runtime)
|
|
|
|
|
endif ()
|
|
|
|
|
|
2026-05-03 16:48:42 +01:00
|
|
|
if ("fx.serial" IN_LIST fx_assemblies)
|
|
|
|
|
add_fx_assembly(
|
|
|
|
|
NAME fx.serial
|
|
|
|
|
NAMESPACES fx.serial
|
|
|
|
|
DEPENDENCIES fx.runtime fx.collections)
|
|
|
|
|
endif ()
|
|
|
|
|
|
2026-05-03 16:49:23 +01:00
|
|
|
if ("fx.term" IN_LIST fx_assemblies)
|
|
|
|
|
add_fx_assembly(
|
|
|
|
|
NAME fx.term
|
|
|
|
|
NAMESPACES fx.term
|
|
|
|
|
DEPENDENCIES fx.runtime fx.collections)
|
|
|
|
|
endif ()
|
|
|
|
|
|
2026-05-03 13:11:22 +01:00
|
|
|
add_executable(dynamic-test test/dynamic-test.c)
|