BuildSystem: Move all userpace libraries under the userspace directory

As the number of libraries is increasing, root directory starts to
expand. This adds better organization for libraries
This commit is contained in:
Bananymous 2024-06-18 13:14:35 +03:00
parent 1b5a01a6c9
commit c69919738b
157 changed files with 46 additions and 30 deletions

View File

@ -19,12 +19,6 @@ set(BANAN_BOOT ${BANAN_SYSROOT}/boot)
add_subdirectory(kernel) add_subdirectory(kernel)
add_subdirectory(bootloader) add_subdirectory(bootloader)
add_subdirectory(BAN) add_subdirectory(BAN)
add_subdirectory(libc)
add_subdirectory(LibELF)
add_subdirectory(LibFont)
add_subdirectory(LibGUI)
add_subdirectory(LibImage)
add_subdirectory(LibInput)
add_subdirectory(userspace) add_subdirectory(userspace)
add_custom_target(sysroot add_custom_target(sysroot
@ -35,24 +29,13 @@ add_custom_target(sysroot
add_custom_target(headers add_custom_target(headers
DEPENDS kernel-headers DEPENDS kernel-headers
DEPENDS ban-headers DEPENDS ban-headers
DEPENDS libc-headers DEPENDS userspace-headers
DEPENDS libelf-headers
DEPENDS libfont-headers
DEPENDS libgui-headers
DEPENDS libimage-headers
DEPENDS libinput-headers
) )
add_custom_target(install-sysroot add_custom_target(install-sysroot
DEPENDS kernel-install DEPENDS kernel-install
DEPENDS ban-install DEPENDS ban-install
DEPENDS libc-install
DEPENDS userspace-install DEPENDS userspace-install
DEPENDS libelf-install
DEPENDS libfont-install
DEPENDS libgui-install
DEPENDS libimage-install
DEPENDS libinput-install
) )
add_custom_target(package-sysroot add_custom_target(package-sysroot

View File

@ -18,5 +18,5 @@ set(SOURCES
add_executable(banan_os-bootloader-installer ${SOURCES}) add_executable(banan_os-bootloader-installer ${SOURCES})
target_compile_options(banan_os-bootloader-installer PRIVATE -O2 -std=c++20) target_compile_options(banan_os-bootloader-installer PRIVATE -O2 -std=c++20)
target_compile_definitions(banan_os-bootloader-installer PRIVATE __arch=${BANAN_ARCH}) target_compile_definitions(banan_os-bootloader-installer PRIVATE __arch=${BANAN_ARCH})
target_include_directories(banan_os-bootloader-installer PRIVATE ${CMAKE_SOURCE_DIR}/../../LibELF/include) target_include_directories(banan_os-bootloader-installer PRIVATE ${CMAKE_SOURCE_DIR}/../../userspace/libraries/LibELF/include)
target_include_directories(banan_os-bootloader-installer PRIVATE ${CMAKE_SOURCE_DIR}/../../kernel/include) target_include_directories(banan_os-bootloader-installer PRIVATE ${CMAKE_SOURCE_DIR}/../../kernel/include)

View File

@ -148,22 +148,21 @@ set(KLIBC_SOURCES
) )
set(LIBELF_SOURCES set(LIBELF_SOURCES
../LibELF/LibELF/LoadableELF.cpp ../userspace/libraries/LibELF/LibELF/LoadableELF.cpp
) )
set(LIBFONT_SOURCES set(LIBFONT_SOURCES
../LibFont/Font.cpp ../userspace/libraries/LibFont/Font.cpp
../LibFont/PSF.cpp ../userspace/libraries/LibFont/PSF.cpp
) )
set(LIBINPUT_SOURCE set(LIBINPUT_SOURCE
../LibInput/KeyboardLayout.cpp ../userspace/libraries/LibInput/KeyboardLayout.cpp
../LibInput/KeyEvent.cpp ../userspace/libraries/LibInput/KeyEvent.cpp
) )
set(KERNEL_SOURCES set(KERNEL_SOURCES
${KERNEL_SOURCES} ${KERNEL_SOURCES}
${LAI_SOURCES}
${BAN_SOURCES} ${BAN_SOURCES}
${KLIBC_SOURCES} ${KLIBC_SOURCES}
${LIBELF_SOURCES} ${LIBELF_SOURCES}
@ -199,8 +198,6 @@ endif()
target_link_options(kernel PUBLIC -ffreestanding -nostdlib) target_link_options(kernel PUBLIC -ffreestanding -nostdlib)
set_source_files_properties(${LAI_SOURCES} PROPERTIES COMPILE_FLAGS -Wno-stack-usage)
add_custom_target(kernel-headers add_custom_target(kernel-headers
COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_CURRENT_SOURCE_DIR}/include/ ${BANAN_INCLUDE}/ COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_CURRENT_SOURCE_DIR}/include/ ${BANAN_INCLUDE}/
DEPENDS sysroot DEPENDS sysroot

View File

@ -48,12 +48,15 @@ set(USERSPACE_PROJECTS
yes yes
) )
add_subdirectory(libraries)
foreach(USERSPACE_PROJECT ${USERSPACE_PROJECTS}) foreach(USERSPACE_PROJECT ${USERSPACE_PROJECTS})
add_subdirectory(${USERSPACE_PROJECT}) add_subdirectory(${USERSPACE_PROJECT})
endforeach() endforeach()
add_custom_target(userspace) add_custom_target(userspace DEPENDS libraries)
add_custom_target(userspace-install DEPENDS userspace) add_custom_target(userspace-headers DEPENDS libraries-headers)
add_custom_target(userspace-install DEPENDS userspace libraries-install)
add_subdirectory(aoc2023) add_subdirectory(aoc2023)

View File

@ -0,0 +1,33 @@
cmake_minimum_required(VERSION 3.26)
project(libraries CXX)
set(USERSPACE_LIBRARIES
LibC
LibELF
LibFont
LibGUI
LibImage
LibInput
)
foreach(LIBRARY ${USERSPACE_LIBRARIES})
add_subdirectory(${LIBRARY})
endforeach()
add_custom_target(libraries)
add_custom_target(libraries-headers)
add_custom_target(libraries-install)
foreach(LIBRARY ${USERSPACE_LIBRARIES})
string(TOLOWER ${LIBRARY} LIBRARY_LOWER)
if (TARGET ${LIBRARY_LOWER})
add_dependencies(libraries ${LIBRARY_LOWER})
# This is to allow cmake to link when libc updates
target_link_options(${LIBRARY_LOWER} PRIVATE -nolibc)
endif()
add_dependencies(libraries-headers ${LIBRARY_LOWER}-headers)
add_dependencies(libraries-install ${LIBRARY_LOWER}-install)
endforeach()

View File

@ -32,7 +32,7 @@ set(LIBC_SOURCES
math.cpp math.cpp
icxxabi.cpp icxxabi.cpp
../BAN/BAN/Assert.cpp ../../../BAN/BAN/Assert.cpp
) )
add_custom_target(libc-headers add_custom_target(libc-headers

Some files were not shown because too many files have changed in this diff Show More