mirror of
https://github.com/EnderIce2/Fennix.git
synced 2025-05-25 22:14:34 +00:00
76 lines
2.2 KiB
CMake
76 lines
2.2 KiB
CMake
cmake_minimum_required(VERSION 3.10)
|
|
project(FennixCoreUtilities VERSION 0.0.1)
|
|
|
|
if(NOT DEFINED ENV{WORKSPACE_DIR})
|
|
set(STANDALONE_BUILD ON)
|
|
message(STATUS "Compiling standalone")
|
|
else()
|
|
set(STANDALONE_BUILD OFF)
|
|
message(STATUS "Compiling within workspace")
|
|
if(DEFINED ENV{QUIET_BUILD})
|
|
message(STATUS "Quiet build enabled")
|
|
set(CMAKE_INSTALL_MESSAGE NEVER)
|
|
set(CMAKE_MESSAGE_LOG_LEVEL "WARNING")
|
|
set(MAKEFLAGS "--no-print-directory")
|
|
set(CMAKE_VERBOSE_MAKEFILE OFF)
|
|
set_property(GLOBAL PROPERTY RULE_MESSAGES OFF)
|
|
endif()
|
|
endif()
|
|
|
|
set(CMAKE_C_COMPILER "$ENV{CC}")
|
|
set(CMAKE_CXX_COMPILER "$ENV{CXX}")
|
|
set(CMAKE_ASM_COMPILER "$ENV{AS}")
|
|
set(CMAKE_AR "$ENV{AR}")
|
|
set(CMAKE_LINKER "$ENV{LD}")
|
|
|
|
if(DEFINED ENV{DEBUG} AND "$ENV{DEBUG}" STREQUAL "1")
|
|
set(CMAKE_C_FLAGS "-ggdb3 -O0 -DDEBUG")
|
|
else()
|
|
set(CMAKE_C_FLAGS "-O2")
|
|
endif()
|
|
|
|
include_directories(${CMAKE_SOURCE_DIR}/include)
|
|
|
|
file(GLOB SINGLE_SOURCE "src/*.c")
|
|
foreach(file ${SINGLE_SOURCE})
|
|
get_filename_component(name ${file} NAME_WE)
|
|
add_executable(${name} ${file})
|
|
target_compile_definitions(${name} PRIVATE
|
|
PROGRAM_NAME="${name}"
|
|
PROGRAM_VERSION="${PROJECT_VERSION}"
|
|
)
|
|
install(TARGETS ${name} DESTINATION ${CMAKE_INSTALL_PREFIX}/sys/bin)
|
|
endforeach()
|
|
|
|
file(GLOB_RECURSE GROUP_SOURCES "src/*/*.c")
|
|
foreach(file ${GROUP_SOURCES})
|
|
get_filename_component(name ${file} DIRECTORY)
|
|
get_filename_component(name ${name} NAME)
|
|
list(APPEND GROUP_MAP_${name} ${file})
|
|
endforeach()
|
|
|
|
foreach(name IN LISTS GROUP_MAP_)
|
|
add_executable(${name} ${GROUP_MAP_${name}})
|
|
target_compile_definitions(${name} PRIVATE
|
|
PROGRAM_NAME="${name}"
|
|
PROGRAM_VERSION="${PROJECT_VERSION}"
|
|
)
|
|
install(TARGETS ${name} DESTINATION ${CMAKE_INSTALL_PREFIX}/sys/bin)
|
|
endforeach()
|
|
|
|
if(UNIX AND TARGET test)
|
|
install(CODE "execute_process(
|
|
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
|
test
|
|
\"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/sys/bin/[\"
|
|
)")
|
|
endif()
|
|
|
|
if(UNIX AND TARGET sh)
|
|
install(CODE "execute_process(
|
|
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
|
sh
|
|
\"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/sys/bin/fsh\"
|
|
)")
|
|
endif()
|