59 lines
1.8 KiB
CMake
59 lines
1.8 KiB
CMake
cmake_minimum_required(VERSION 3.26)
|
|
|
|
project(banan-os CXX C ASM)
|
|
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|
|
|
function(banan_include_headers target library)
|
|
target_include_directories(${target} PUBLIC $<TARGET_PROPERTY:${library},SOURCE_DIR>/include)
|
|
endfunction()
|
|
|
|
function(banan_link_library target library)
|
|
target_link_libraries(${target} PUBLIC ${library})
|
|
banan_include_headers(${target} ${library})
|
|
endfunction()
|
|
|
|
function(banan_install_headers target)
|
|
file(GLOB_RECURSE headers RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/include *.h)
|
|
foreach(header ${headers})
|
|
get_filename_component(subdirectory ${header} DIRECTORY)
|
|
install(FILES include/${header} DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/${subdirectory})
|
|
endforeach()
|
|
target_include_directories(${target} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include)
|
|
endfunction()
|
|
|
|
set(CMAKE_CXX_STANDARD 20)
|
|
add_compile_definitions(-Dstddbg=stdout)
|
|
add_compile_options(-g)
|
|
|
|
if(BANAN_OS)
|
|
find_library(BAN ban REQUIRED)
|
|
add_library(ban SHARED IMPORTED)
|
|
set_target_properties(ban PROPERTIES IMPORTED_LOCATION "${BAN}")
|
|
|
|
find_library(LIBGUI gui REQUIRED)
|
|
add_library(libgui SHARED IMPORTED)
|
|
set_target_properties(libgui PROPERTIES IMPORTED_LOCATION "${LIBGUI}")
|
|
|
|
find_library(LIBINPUT input REQUIRED)
|
|
add_library(libinput SHARED IMPORTED)
|
|
set_target_properties(libinput PROPERTIES IMPORTED_LOCATION "${LIBINPUT}")
|
|
|
|
find_library(LIBDEFLATE deflate REQUIRED)
|
|
add_library(libdeflate SHARED IMPORTED)
|
|
set_target_properties(libdeflate PROPERTIES IMPORTED_LOCATION "${LIBDEFLATE}")
|
|
else()
|
|
add_subdirectory(BAN)
|
|
add_subdirectory(LibClipboard)
|
|
add_subdirectory(LibDEFLATE)
|
|
add_subdirectory(LibFont)
|
|
add_subdirectory(LibGUI)
|
|
add_subdirectory(LibImage)
|
|
add_subdirectory(LibInput)
|
|
add_subdirectory(Terminal)
|
|
add_subdirectory(ProgramLauncher)
|
|
add_subdirectory(WindowServer)
|
|
endif()
|
|
|
|
add_subdirectory(xbanan)
|