cmake_minimum_required(VERSION 3.25) project(fx C ASM) set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake) include (TestBigEndian) include(Templates) include(Platform) set(CMAKE_C_STANDARD 99) set(CMAKE_C_EXTENSIONS OFF) set_property(GLOBAL PROPERTY USE_FOLDERS ON) set(fx_source_root ${CMAKE_CURRENT_SOURCE_DIR}) set(fx_build_root ${CMAKE_CURRENT_BINARY_DIR}) file(GLOB _all_assemblies assemblies/* LIST_DIRECTORIES TRUE) foreach (assembly_path ${_all_assemblies}) get_filename_component(assembly_name ${assembly_path} NAME) set(fx_all_assemblies ${fx_all_assemblies} ${assembly_name}) endforeach (assembly_path) if (NOT DEFINED fx_assemblies) set(fx_assemblies ${fx_all_assemblies}) 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}") get_platform_details( SYSTEM fx_system_name PROCESSOR fx_system_arch) message(STATUS "Target system: ${fx_system_name}-${fx_system_arch}") 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) foreach (assembly ${fx_assemblies}) add_subdirectory(assemblies/${assembly}) endforeach (assembly) add_subdirectory(test)