BuildSystem: using sysroot doesn't need root privileges anymore!

Sysroot is now created with fakeroot. This allows root access to be
only needed for disk image creation, since it uses loopback devices.
This commit is contained in:
Bananymous 2023-11-04 17:50:43 +02:00
parent ca34ece8ef
commit f6c312a6b3
38 changed files with 83 additions and 113 deletions

2
.gitignore vendored
View File

@ -2,4 +2,4 @@
.idea/ .idea/
build/ build/
base/ base/
script/fakeroot-context

View File

@ -10,17 +10,15 @@ set(BAN_SOURCES
) )
add_custom_target(ban-headers add_custom_target(ban-headers
COMMAND sudo rsync -a ${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
USES_TERMINAL
) )
add_library(ban ${BAN_SOURCES}) add_library(ban ${BAN_SOURCES})
add_dependencies(ban headers libc-install) add_dependencies(ban headers libc-install)
add_custom_target(ban-install add_custom_target(ban-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/libban.a ${BANAN_LIB}/ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/libban.a ${BANAN_LIB}/
DEPENDS ban DEPENDS ban
BYPRODUCTS ${BANAN_LIB}/libban.a BYPRODUCTS ${BANAN_LIB}/libban.a
USES_TERMINAL
) )

View File

@ -10,7 +10,6 @@ add_compile_definitions(__enable_sse=0)
project(banan-os CXX C ASM) project(banan-os CXX C ASM)
set(BANAN_BASE_SYSROOT ${CMAKE_SOURCE_DIR}/base-sysroot.tar.gz) set(BANAN_BASE_SYSROOT ${CMAKE_SOURCE_DIR}/base-sysroot.tar.gz)
set(BANAN_SYSROOT ${CMAKE_BINARY_DIR}/sysroot)
set(BANAN_INCLUDE ${BANAN_SYSROOT}/usr/include) set(BANAN_INCLUDE ${BANAN_SYSROOT}/usr/include)
set(BANAN_LIB ${BANAN_SYSROOT}/usr/lib) set(BANAN_LIB ${BANAN_SYSROOT}/usr/lib)
set(BANAN_BIN ${BANAN_SYSROOT}/usr/bin) set(BANAN_BIN ${BANAN_SYSROOT}/usr/bin)
@ -24,8 +23,7 @@ add_subdirectory(userspace)
add_custom_target(sysroot add_custom_target(sysroot
COMMAND ${CMAKE_COMMAND} -E make_directory ${BANAN_SYSROOT} COMMAND ${CMAKE_COMMAND} -E make_directory ${BANAN_SYSROOT}
COMMAND cd ${BANAN_SYSROOT} && sudo tar xf ${BANAN_BASE_SYSROOT} COMMAND cd ${BANAN_SYSROOT} && tar xf ${BANAN_BASE_SYSROOT}
USES_TERMINAL
) )
add_custom_target(headers add_custom_target(headers
@ -36,6 +34,7 @@ add_custom_target(headers
) )
add_custom_target(install-sysroot add_custom_target(install-sysroot
COMMAND cd ${BANAN_SYSROOT} && tar cf ${BANAN_SYSROOT_TAR} *
DEPENDS kernel-install DEPENDS kernel-install
DEPENDS ban-install DEPENDS ban-install
DEPENDS libc-install DEPENDS libc-install

View File

@ -3,9 +3,8 @@ cmake_minimum_required(VERSION 3.26)
project(LibELF CXX) project(LibELF CXX)
add_custom_target(libelf-headers add_custom_target(libelf-headers
COMMAND sudo rsync -a ${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
USES_TERMINAL
) )
add_custom_target(libelf-install add_custom_target(libelf-install

View File

@ -2,7 +2,7 @@
# banan-os # banan-os
This is my hobby operating system written in C++. Currently supports only x86_64 architecture. We have a ext2 filesystem, basic ramfs, IDE disk drivers in ATA PIO mode, ATA AHCI drivers, userspace processes, executable loading from ELF format, linear VBE graphics and multithreaded processing on single core. This is my hobby operating system written in C++. Currently supports only x86\_64 architecture. We have a ext2 filesystem, basic ramfs, IDE disk drivers in ATA PIO mode, ATA AHCI drivers, userspace processes, executable loading from ELF format, linear VBE graphics and multithreaded processing on single core.
![screenshot from qemu running banan-os](assets/banan-os.png) ![screenshot from qemu running banan-os](assets/banan-os.png)
@ -20,7 +20,7 @@ To build the toolchain for this os. You can run the following command.
./script/build.sh toolchain ./script/build.sh toolchain
``` ```
To build the os itself you can run one of the following commands. You will need root access since the sysroot has "proper" permissions. To build the os itself you can run one of the following commands. You will need root access for disk image creation/modification.
```sh ```sh
./script/build.sh qemu ./script/build.sh qemu
./script/build.sh qemu-nographic ./script/build.sh qemu-nographic
@ -39,8 +39,6 @@ If you have corrupted your disk image or want to create new one, you can either
./script/build.sh image-full ./script/build.sh image-full
``` ```
> ***NOTE*** ```ninja clean``` has to be ran with root permissions, since it deletes from the banan-so sysroot.
If you feel like ```./script/build.sh``` is too verbose, there exists a symlink _bos_ in this projects root directory. All build commands can be used with ```./bos args...``` instead. If you feel like ```./script/build.sh``` is too verbose, there exists a symlink _bos_ in this projects root directory. All build commands can be used with ```./bos args...``` instead.
I have also created shell completion script for zsh. You can either copy the file in _script/shell-completion/zsh/\_bos_ to _/usr/share/zsh/site-functions/_ or add the _script/shell-completion/zsh_ to your fpath in _.zshrc_. I have also created shell completion script for zsh. You can either copy the file in _script/shell-completion/zsh/\_bos_ to _/usr/share/zsh/site-functions/_ or add the _script/shell-completion/zsh_ to your fpath in _.zshrc_.

View File

@ -165,16 +165,14 @@ endif()
target_link_options(kernel PUBLIC -ffreestanding -nostdlib) target_link_options(kernel PUBLIC -ffreestanding -nostdlib)
add_custom_target(kernel-headers add_custom_target(kernel-headers
COMMAND sudo rsync -a ${CMAKE_CURRENT_SOURCE_DIR}/include/ ${BANAN_INCLUDE}/ COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_CURRENT_SOURCE_DIR}/include/ ${BANAN_INCLUDE}/
COMMAND sudo rsync -a ${CMAKE_CURRENT_SOURCE_DIR}/lai/include/ ${BANAN_INCLUDE}/ COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_CURRENT_SOURCE_DIR}/lai/include/ ${BANAN_INCLUDE}/
DEPENDS sysroot DEPENDS sysroot
USES_TERMINAL
) )
add_custom_target(kernel-install add_custom_target(kernel-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/kernel ${BANAN_BOOT}/banan-os.kernel COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/kernel ${BANAN_BOOT}/banan-os.kernel
DEPENDS kernel DEPENDS kernel
USES_TERMINAL
) )
execute_process(COMMAND ${CMAKE_CXX_COMPILER} -print-file-name=crtbegin.o OUTPUT_VARIABLE CRTBEGIN OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process(COMMAND ${CMAKE_CXX_COMPILER} -print-file-name=crtbegin.o OUTPUT_VARIABLE CRTBEGIN OUTPUT_STRIP_TRAILING_WHITESPACE)

View File

@ -26,9 +26,8 @@ set(LIBC_SOURCES
) )
add_custom_target(libc-headers add_custom_target(libc-headers
COMMAND sudo rsync -a ${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
USES_TERMINAL
) )
add_custom_target(crtx add_custom_target(crtx
@ -38,11 +37,10 @@ add_custom_target(crtx
) )
add_custom_target(crtx-install add_custom_target(crtx-install
COMMAND sudo cp crt0.o ${BANAN_LIB}/ COMMAND ${CMAKE_COMMAND} -E copy crt0.o ${BANAN_LIB}/
COMMAND sudo cp crti.o ${BANAN_LIB}/ COMMAND ${CMAKE_COMMAND} -E copy crti.o ${BANAN_LIB}/
COMMAND sudo cp crtn.o ${BANAN_LIB}/ COMMAND ${CMAKE_COMMAND} -E copy crtn.o ${BANAN_LIB}/
DEPENDS crtx DEPENDS crtx
USES_TERMINAL
) )
add_library(libc ${LIBC_SOURCES}) add_library(libc ${LIBC_SOURCES})
@ -51,10 +49,9 @@ add_dependencies(libc headers crtx-install)
target_compile_options(libc PRIVATE -g -Wstack-usage=512) target_compile_options(libc PRIVATE -g -Wstack-usage=512)
add_custom_target(libc-install add_custom_target(libc-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/libc.a ${BANAN_LIB}/ COMMAND ${CMAKE_COMMAND} -E copy_if_different ${CMAKE_CURRENT_BINARY_DIR}/libc.a ${BANAN_LIB}/
DEPENDS libc DEPENDS libc
BYPRODUCTS ${BANAN_LIB}/libc.a BYPRODUCTS ${BANAN_LIB}/libc.a
USES_TERMINAL
) )
set(CMAKE_STATIC_LIBRARY_PREFIX "") set(CMAKE_STATIC_LIBRARY_PREFIX "")

View File

@ -4,6 +4,12 @@ set -e
export BANAN_SCRIPT_DIR=$(dirname $(realpath $0)) export BANAN_SCRIPT_DIR=$(dirname $(realpath $0))
source $BANAN_SCRIPT_DIR/config.sh source $BANAN_SCRIPT_DIR/config.sh
FAKEROOT_FILE="$BANAN_BUILD_DIR/fakeroot-context"
run_fakeroot() {
fakeroot -i $FAKEROOT_FILE -s $FAKEROOT_FILE -- /bin/bash -c '$@' bash $@
}
make_build_dir () { make_build_dir () {
mkdir -p $BANAN_BUILD_DIR mkdir -p $BANAN_BUILD_DIR
cd $BANAN_BUILD_DIR cd $BANAN_BUILD_DIR
@ -19,7 +25,7 @@ build_target () {
exit 1 exit 1
fi fi
cd $BANAN_BUILD_DIR cd $BANAN_BUILD_DIR
ninja $1 run_fakeroot ninja $1
} }
build_toolchain () { build_toolchain () {
@ -39,11 +45,7 @@ build_toolchain () {
create_image () { create_image () {
build_target install-sysroot build_target install-sysroot
if [[ "$1" == "full" ]]; then $BANAN_SCRIPT_DIR/image.sh "$1"
$BANAN_SCRIPT_DIR/image-full.sh
else
$BANAN_SCRIPT_DIR/image.sh
fi
} }
run_qemu () { run_qemu () {
@ -56,7 +58,7 @@ run_bochs () {
$BANAN_SCRIPT_DIR/bochs.sh $@ $BANAN_SCRIPT_DIR/bochs.sh $@
} }
if [[ "$(uname)" == "Linux" ]]; then if [[ -c /dev/kvm ]]; then
QEMU_ACCEL="-accel kvm" QEMU_ACCEL="-accel kvm"
fi fi

View File

@ -18,6 +18,7 @@ export BANAN_TOOLCHAIN_TRIPLE_PREFIX=$BANAN_ARCH-banan_os
export BANAN_BUILD_DIR=$BANAN_ROOT_DIR/build export BANAN_BUILD_DIR=$BANAN_ROOT_DIR/build
export BANAN_SYSROOT=$BANAN_BUILD_DIR/sysroot export BANAN_SYSROOT=$BANAN_BUILD_DIR/sysroot
export BANAN_SYSROOT_TAR=$BANAN_SYSROOT.tar
export BANAN_DISK_IMAGE_PATH=$BANAN_BUILD_DIR/banan-os.img export BANAN_DISK_IMAGE_PATH=$BANAN_BUILD_DIR/banan-os.img

View File

@ -72,7 +72,7 @@ sudo partprobe $LOOP_DEV
PARTITION1=${LOOP_DEV}p1 PARTITION1=${LOOP_DEV}p1
PARTITION2=${LOOP_DEV}p2 PARTITION2=${LOOP_DEV}p2
sudo mkfs.ext2 -d $BANAN_SYSROOT -b 1024 -q $PARTITION2 sudo mkfs.ext2 -b 1024 -q $PARTITION2
if [[ "$BANAN_UEFI_BOOT" == "1" ]]; then if [[ "$BANAN_UEFI_BOOT" == "1" ]]; then
sudo mkfs.fat $PARTITION1 > /dev/null sudo mkfs.fat $PARTITION1 > /dev/null

View File

@ -1,44 +1,38 @@
#!/bin/bash #!/bin/bash
if [[ -z $BANAN_ROOT_DIR ]]; then
echo "You must set the BANAN_ROOT_DIR environment variable" >&2
exit 1
fi
if [[ -z $BANAN_DISK_IMAGE_PATH ]]; then if [[ -z $BANAN_DISK_IMAGE_PATH ]]; then
echo "You must set the BANAN_DISK_IMAGE_PATH environment variable" >&2 echo "You must set the BANAN_DISK_IMAGE_PATH environment variable" >&2
exit 1 exit 1
fi fi
if [[ -z $BANAN_SYSROOT ]]; then if [[ -z $BANAN_SYSROOT_TAR ]]; then
echo "You must set the BANAN_SYSROOT environment variable" >&2 echo "You must set the BANAN_SYSROOT_TAR environment variable" >&2
exit 1 exit 1
fi fi
if [[ ! -f $BANAN_DISK_IMAGE_PATH ]]; then if [[ "$1" == "full" ]] || [[ ! -f $BANAN_DISK_IMAGE_PATH ]]; then
$BANAN_SCRIPT_DIR/image-full.sh $BANAN_SCRIPT_DIR/image-create.sh
exit 0 else
fdisk -l $BANAN_DISK_IMAGE_PATH | grep -q 'EFI System'; IMAGE_IS_UEFI=$?
[[ $BANAN_UEFI_BOOT == 1 ]]; CREATE_IS_UEFI=$?
if [[ $IMAGE_IS_UEFI -ne $CREATE_IS_UEFI ]]; then
echo Converting disk image to/from UEFI
$BANAN_SCRIPT_DIR/image-create.sh
fi
fi fi
fdisk -l $BANAN_DISK_IMAGE_PATH | grep -q 'EFI System'; IMAGE_IS_UEFI=$? LOOP_DEV=$(sudo losetup --show -f "$BANAN_DISK_IMAGE_PATH")
[[ $BANAN_UEFI_BOOT == 1 ]]; CREATE_IS_UEFI=$?
if [[ $IMAGE_IS_UEFI -ne $CREATE_IS_UEFI ]]; then
echo Converting disk image to/from UEFI
$BANAN_SCRIPT_DIR/image-full.sh
exit 0
fi
MOUNT_DIR=/mnt
LOOP_DEV=$(sudo losetup -f --show $BANAN_DISK_IMAGE_PATH)
sudo partprobe $LOOP_DEV sudo partprobe $LOOP_DEV
ROOT_PARTITON=${LOOP_DEV}p2 ROOT_PARTITION=${LOOP_DEV}p2
MOUNT_DIR=/mnt
sudo mount $ROOT_PARTITON $MOUNT_DIR sudo mount $ROOT_PARTITION $MOUNT_DIR
sudo rsync -a ${BANAN_SYSROOT}/* ${MOUNT_DIR}/ cd $MOUNT_DIR
sudo tar xf $BANAN_SYSROOT_TAR
cd
sudo umount $MOUNT_DIR sudo umount $MOUNT_DIR

View File

@ -1,9 +1,19 @@
if (NOT DEFINED ENV{BANAN_ARCH}) if (NOT DEFINED ENV{BANAN_ARCH})
message(FATAL_ERROR "environment variable BANAN_ARCH not defined") message(FATAL_ERROR "environment variable BANAN_ARCH not defined")
endif () endif ()
set(BANAN_ARCH $ENV{BANAN_ARCH}) set(BANAN_ARCH $ENV{BANAN_ARCH})
if (NOT DEFINED ENV{BANAN_SYSROOT})
message(FATAL_ERROR "environment variable BANAN_SYSROOT not defined")
endif ()
set(BANAN_SYSROOT $ENV{BANAN_SYSROOT})
if (NOT DEFINED ENV{BANAN_SYSROOT_TAR})
message(FATAL_ERROR "environment variable BANAN_SYSROOT_TAR not defined")
endif ()
set(BANAN_SYSROOT_TAR $ENV{BANAN_SYSROOT_TAR})
set(TOOLCHAIN_PREFIX ${CMAKE_SOURCE_DIR}/toolchain/local) set(TOOLCHAIN_PREFIX ${CMAKE_SOURCE_DIR}/toolchain/local)
set(CMAKE_SYSTEM_NAME banan-os) set(CMAKE_SYSTEM_NAME banan-os)

View File

@ -11,7 +11,6 @@ target_compile_options(Shell PUBLIC -O2 -g)
target_link_libraries(Shell PUBLIC libc ban) target_link_libraries(Shell PUBLIC libc ban)
add_custom_target(Shell-install add_custom_target(Shell-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/Shell ${BANAN_BIN}/ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/Shell ${BANAN_BIN}/
DEPENDS Shell DEPENDS Shell
USES_TERMINAL
) )

View File

@ -11,7 +11,6 @@ target_compile_options(cat-mmap PUBLIC -O2 -g)
target_link_libraries(cat-mmap PUBLIC libc) target_link_libraries(cat-mmap PUBLIC libc)
add_custom_target(cat-mmap-install add_custom_target(cat-mmap-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/cat-mmap ${BANAN_BIN}/ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/cat-mmap ${BANAN_BIN}/
DEPENDS cat-mmap DEPENDS cat-mmap
USES_TERMINAL
) )

View File

@ -11,7 +11,6 @@ target_compile_options(cat PUBLIC -O2 -g)
target_link_libraries(cat PUBLIC libc) target_link_libraries(cat PUBLIC libc)
add_custom_target(cat-install add_custom_target(cat-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/cat ${BANAN_BIN}/ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/cat ${BANAN_BIN}/
DEPENDS cat DEPENDS cat
USES_TERMINAL
) )

View File

@ -11,7 +11,6 @@ target_compile_options(chmod PUBLIC -O2 -g)
target_link_libraries(chmod PUBLIC libc) target_link_libraries(chmod PUBLIC libc)
add_custom_target(chmod-install add_custom_target(chmod-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/chmod ${BANAN_BIN}/ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/chmod ${BANAN_BIN}/
DEPENDS chmod DEPENDS chmod
USES_TERMINAL
) )

View File

@ -11,7 +11,6 @@ target_compile_options(cp PUBLIC -O2 -g)
target_link_libraries(cp PUBLIC libc ban) target_link_libraries(cp PUBLIC libc ban)
add_custom_target(cp-install add_custom_target(cp-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/cp ${BANAN_BIN}/ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/cp ${BANAN_BIN}/
DEPENDS cp DEPENDS cp
USES_TERMINAL
) )

View File

@ -20,9 +20,8 @@ target_compile_options($PROGRAM_NAME PUBLIC -O2 -g)
target_link_libraries($PROGRAM_NAME PUBLIC libc) target_link_libraries($PROGRAM_NAME PUBLIC libc)
add_custom_target($PROGRAM_NAME-install add_custom_target($PROGRAM_NAME-install
COMMAND sudo cp \${CMAKE_CURRENT_BINARY_DIR}/$PROGRAM_NAME \${BANAN_BIN}/ COMMAND \${CMAKE_COMMAND} -E copy \${CMAKE_CURRENT_BINARY_DIR}/$PROGRAM_NAME \${BANAN_BIN}/
DEPENDS $PROGRAM_NAME DEPENDS $PROGRAM_NAME
USES_TERMINAL
) )
EOF EOF

View File

@ -11,7 +11,6 @@ target_compile_options(dd PUBLIC -O2 -g)
target_link_libraries(dd PUBLIC libc) target_link_libraries(dd PUBLIC libc)
add_custom_target(dd-install add_custom_target(dd-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/dd ${BANAN_BIN}/ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/dd ${BANAN_BIN}/
DEPENDS dd DEPENDS dd
USES_TERMINAL
) )

View File

@ -11,7 +11,6 @@ target_compile_options(echo PUBLIC -O2 -g)
target_link_libraries(echo PUBLIC libc) target_link_libraries(echo PUBLIC libc)
add_custom_target(echo-install add_custom_target(echo-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/echo ${BANAN_BIN}/ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/echo ${BANAN_BIN}/
DEPENDS echo DEPENDS echo
USES_TERMINAL
) )

View File

@ -11,7 +11,6 @@ target_compile_options(id PUBLIC -O2 -g)
target_link_libraries(id PUBLIC libc ban) target_link_libraries(id PUBLIC libc ban)
add_custom_target(id-install add_custom_target(id-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/id ${BANAN_BIN}/ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/id ${BANAN_BIN}/
DEPENDS id DEPENDS id
USES_TERMINAL
) )

View File

@ -11,7 +11,6 @@ target_compile_options(init PUBLIC -O2 -g)
target_link_libraries(init PUBLIC libc ban) target_link_libraries(init PUBLIC libc ban)
add_custom_target(init-install add_custom_target(init-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/init ${BANAN_BIN}/ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/init ${BANAN_BIN}/
DEPENDS init DEPENDS init
USES_TERMINAL
) )

View File

@ -11,7 +11,6 @@ target_compile_options(ls PUBLIC -O2 -g)
target_link_libraries(ls PUBLIC libc) target_link_libraries(ls PUBLIC libc)
add_custom_target(ls-install add_custom_target(ls-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/ls ${BANAN_BIN}/ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/ls ${BANAN_BIN}/
DEPENDS ls DEPENDS ls
USES_TERMINAL
) )

View File

@ -11,7 +11,6 @@ target_compile_options(meminfo PUBLIC -O2 -g)
target_link_libraries(meminfo PUBLIC libc) target_link_libraries(meminfo PUBLIC libc)
add_custom_target(meminfo-install add_custom_target(meminfo-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/meminfo ${BANAN_BIN}/ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/meminfo ${BANAN_BIN}/
DEPENDS meminfo DEPENDS meminfo
USES_TERMINAL
) )

View File

@ -11,7 +11,6 @@ target_compile_options(mkdir PUBLIC -O2 -g)
target_link_libraries(mkdir PUBLIC libc) target_link_libraries(mkdir PUBLIC libc)
add_custom_target(mkdir-install add_custom_target(mkdir-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/mkdir ${BANAN_BIN}/ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/mkdir ${BANAN_BIN}/
DEPENDS mkdir DEPENDS mkdir
USES_TERMINAL
) )

View File

@ -11,7 +11,6 @@ target_compile_options(mmap-shared-test PUBLIC -O2 -g)
target_link_libraries(mmap-shared-test PUBLIC libc) target_link_libraries(mmap-shared-test PUBLIC libc)
add_custom_target(mmap-shared-test-install add_custom_target(mmap-shared-test-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/mmap-shared-test ${BANAN_BIN}/ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/mmap-shared-test ${BANAN_BIN}/
DEPENDS mmap-shared-test DEPENDS mmap-shared-test
USES_TERMINAL
) )

View File

@ -11,7 +11,6 @@ target_compile_options(poweroff PUBLIC -O2 -g)
target_link_libraries(poweroff PUBLIC libc) target_link_libraries(poweroff PUBLIC libc)
add_custom_target(poweroff-install add_custom_target(poweroff-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/poweroff ${BANAN_BIN}/ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/poweroff ${BANAN_BIN}/
DEPENDS poweroff DEPENDS poweroff
USES_TERMINAL
) )

View File

@ -11,7 +11,6 @@ target_compile_options(rm PUBLIC -O2 -g)
target_link_libraries(rm PUBLIC libc ban) target_link_libraries(rm PUBLIC libc ban)
add_custom_target(rm-install add_custom_target(rm-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/rm ${BANAN_BIN}/ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/rm ${BANAN_BIN}/
DEPENDS rm DEPENDS rm
USES_TERMINAL
) )

View File

@ -11,7 +11,6 @@ target_compile_options(snake PUBLIC -O2 -g)
target_link_libraries(snake PUBLIC libc) target_link_libraries(snake PUBLIC libc)
add_custom_target(snake-install add_custom_target(snake-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/snake ${BANAN_BIN}/ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/snake ${BANAN_BIN}/
DEPENDS snake DEPENDS snake
USES_TERMINAL
) )

View File

@ -11,7 +11,6 @@ target_compile_options(stat PUBLIC -O2 -g)
target_link_libraries(stat PUBLIC libc ban) target_link_libraries(stat PUBLIC libc ban)
add_custom_target(stat-install add_custom_target(stat-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/stat ${BANAN_BIN}/ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/stat ${BANAN_BIN}/
DEPENDS stat DEPENDS stat
USES_TERMINAL
) )

View File

@ -11,7 +11,6 @@ target_compile_options(sync PUBLIC -O2 -g)
target_link_libraries(sync PUBLIC libc) target_link_libraries(sync PUBLIC libc)
add_custom_target(sync-install add_custom_target(sync-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/sync ${BANAN_BIN}/ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/sync ${BANAN_BIN}/
DEPENDS sync DEPENDS sync
USES_TERMINAL
) )

View File

@ -11,7 +11,6 @@ target_compile_options(tee PUBLIC -O2 -g)
target_link_libraries(tee PUBLIC libc) target_link_libraries(tee PUBLIC libc)
add_custom_target(tee-install add_custom_target(tee-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/tee ${BANAN_BIN}/ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/tee ${BANAN_BIN}/
DEPENDS tee DEPENDS tee
USES_TERMINAL
) )

View File

@ -11,7 +11,6 @@ target_compile_options(test-globals PUBLIC -O2 -g)
target_link_libraries(test-globals PUBLIC libc) target_link_libraries(test-globals PUBLIC libc)
add_custom_target(test-globals-install add_custom_target(test-globals-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/test-globals ${BANAN_BIN}/ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/test-globals ${BANAN_BIN}/
DEPENDS test-globals DEPENDS test-globals
USES_TERMINAL
) )

View File

@ -11,7 +11,6 @@ target_compile_options(test PUBLIC -O2 -g)
target_link_libraries(test PUBLIC libc) target_link_libraries(test PUBLIC libc)
add_custom_target(test-install add_custom_target(test-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/test ${BANAN_BIN}/ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/test ${BANAN_BIN}/
DEPENDS test DEPENDS test
USES_TERMINAL
) )

View File

@ -11,7 +11,6 @@ target_compile_options(touch PUBLIC -O2 -g)
target_link_libraries(touch PUBLIC libc) target_link_libraries(touch PUBLIC libc)
add_custom_target(touch-install add_custom_target(touch-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/touch ${BANAN_BIN}/ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/touch ${BANAN_BIN}/
DEPENDS touch DEPENDS touch
USES_TERMINAL
) )

View File

@ -11,7 +11,6 @@ target_compile_options(u8sum PUBLIC -O2 -g)
target_link_libraries(u8sum PUBLIC libc) target_link_libraries(u8sum PUBLIC libc)
add_custom_target(u8sum-install add_custom_target(u8sum-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/u8sum ${BANAN_BIN}/ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/u8sum ${BANAN_BIN}/
DEPENDS u8sum DEPENDS u8sum
USES_TERMINAL
) )

View File

@ -11,7 +11,6 @@ target_compile_options(whoami PUBLIC -O2 -g)
target_link_libraries(whoami PUBLIC libc ban) target_link_libraries(whoami PUBLIC libc ban)
add_custom_target(whoami-install add_custom_target(whoami-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/whoami ${BANAN_BIN}/ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/whoami ${BANAN_BIN}/
DEPENDS whoami DEPENDS whoami
USES_TERMINAL
) )

View File

@ -11,7 +11,6 @@ target_compile_options(yes PUBLIC -O2 -g)
target_link_libraries(yes PUBLIC libc) target_link_libraries(yes PUBLIC libc)
add_custom_target(yes-install add_custom_target(yes-install
COMMAND sudo cp ${CMAKE_CURRENT_BINARY_DIR}/yes ${BANAN_BIN}/ COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_BINARY_DIR}/yes ${BANAN_BIN}/
DEPENDS yes DEPENDS yes
USES_TERMINAL
) )