forked from Bananymous/banan-os
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:
parent
120f7329b1
commit
6d899aa6ce
|
@ -2,4 +2,4 @@
|
|||
.idea/
|
||||
build/
|
||||
base/
|
||||
|
||||
script/fakeroot-context
|
||||
|
|
|
@ -10,17 +10,15 @@ set(BAN_SOURCES
|
|||
)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
||||
add_library(ban ${BAN_SOURCES})
|
||||
add_dependencies(ban headers libc-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
|
||||
BYPRODUCTS ${BANAN_LIB}/libban.a
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
|
|
@ -10,7 +10,6 @@ add_compile_definitions(__enable_sse=0)
|
|||
project(banan-os CXX C ASM)
|
||||
|
||||
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_LIB ${BANAN_SYSROOT}/usr/lib)
|
||||
set(BANAN_BIN ${BANAN_SYSROOT}/usr/bin)
|
||||
|
@ -24,8 +23,7 @@ add_subdirectory(userspace)
|
|||
|
||||
add_custom_target(sysroot
|
||||
COMMAND ${CMAKE_COMMAND} -E make_directory ${BANAN_SYSROOT}
|
||||
COMMAND cd ${BANAN_SYSROOT} && sudo tar xf ${BANAN_BASE_SYSROOT}
|
||||
USES_TERMINAL
|
||||
COMMAND cd ${BANAN_SYSROOT} && tar xf ${BANAN_BASE_SYSROOT}
|
||||
)
|
||||
|
||||
add_custom_target(headers
|
||||
|
@ -36,6 +34,7 @@ add_custom_target(headers
|
|||
)
|
||||
|
||||
add_custom_target(install-sysroot
|
||||
COMMAND cd ${BANAN_SYSROOT} && tar cf ${BANAN_SYSROOT_TAR} *
|
||||
DEPENDS kernel-install
|
||||
DEPENDS ban-install
|
||||
DEPENDS libc-install
|
||||
|
|
|
@ -3,9 +3,8 @@ cmake_minimum_required(VERSION 3.26)
|
|||
project(LibELF CXX)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
||||
add_custom_target(libelf-install
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
# 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)
|
||||
|
||||
|
@ -20,7 +20,7 @@ To build the toolchain for this os. You can run the following command.
|
|||
./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
|
||||
./script/build.sh qemu
|
||||
./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
|
||||
```
|
||||
|
||||
> ***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.
|
||||
|
||||
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_.
|
||||
|
|
|
@ -165,16 +165,14 @@ endif()
|
|||
target_link_options(kernel PUBLIC -ffreestanding -nostdlib)
|
||||
|
||||
add_custom_target(kernel-headers
|
||||
COMMAND sudo rsync -a ${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}/include/ ${BANAN_INCLUDE}/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory_if_different ${CMAKE_CURRENT_SOURCE_DIR}/lai/include/ ${BANAN_INCLUDE}/
|
||||
DEPENDS sysroot
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
||||
execute_process(COMMAND ${CMAKE_CXX_COMPILER} -print-file-name=crtbegin.o OUTPUT_VARIABLE CRTBEGIN OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||
|
|
|
@ -26,9 +26,8 @@ set(LIBC_SOURCES
|
|||
)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
||||
add_custom_target(crtx
|
||||
|
@ -38,11 +37,10 @@ add_custom_target(crtx
|
|||
)
|
||||
|
||||
add_custom_target(crtx-install
|
||||
COMMAND sudo cp crt0.o ${BANAN_LIB}/
|
||||
COMMAND sudo cp crti.o ${BANAN_LIB}/
|
||||
COMMAND sudo cp crtn.o ${BANAN_LIB}/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy crt0.o ${BANAN_LIB}/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy crti.o ${BANAN_LIB}/
|
||||
COMMAND ${CMAKE_COMMAND} -E copy crtn.o ${BANAN_LIB}/
|
||||
DEPENDS crtx
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
||||
add_library(libc ${LIBC_SOURCES})
|
||||
|
@ -51,10 +49,9 @@ add_dependencies(libc headers crtx-install)
|
|||
target_compile_options(libc PRIVATE -g -Wstack-usage=512)
|
||||
|
||||
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
|
||||
BYPRODUCTS ${BANAN_LIB}/libc.a
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
||||
set(CMAKE_STATIC_LIBRARY_PREFIX "")
|
||||
|
|
|
@ -4,6 +4,12 @@ set -e
|
|||
export BANAN_SCRIPT_DIR=$(dirname $(realpath $0))
|
||||
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 () {
|
||||
mkdir -p $BANAN_BUILD_DIR
|
||||
cd $BANAN_BUILD_DIR
|
||||
|
@ -19,7 +25,7 @@ build_target () {
|
|||
exit 1
|
||||
fi
|
||||
cd $BANAN_BUILD_DIR
|
||||
ninja $1
|
||||
run_fakeroot ninja $1
|
||||
}
|
||||
|
||||
build_toolchain () {
|
||||
|
@ -39,11 +45,7 @@ build_toolchain () {
|
|||
|
||||
create_image () {
|
||||
build_target install-sysroot
|
||||
if [[ "$1" == "full" ]]; then
|
||||
$BANAN_SCRIPT_DIR/image-full.sh
|
||||
else
|
||||
$BANAN_SCRIPT_DIR/image.sh
|
||||
fi
|
||||
$BANAN_SCRIPT_DIR/image.sh "$1"
|
||||
}
|
||||
|
||||
run_qemu () {
|
||||
|
@ -56,7 +58,7 @@ run_bochs () {
|
|||
$BANAN_SCRIPT_DIR/bochs.sh $@
|
||||
}
|
||||
|
||||
if [[ "$(uname)" == "Linux" ]]; then
|
||||
if [[ -c /dev/kvm ]]; then
|
||||
QEMU_ACCEL="-accel kvm"
|
||||
fi
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ export BANAN_TOOLCHAIN_TRIPLE_PREFIX=$BANAN_ARCH-banan_os
|
|||
export BANAN_BUILD_DIR=$BANAN_ROOT_DIR/build
|
||||
|
||||
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
|
||||
|
||||
|
|
|
@ -72,7 +72,7 @@ sudo partprobe $LOOP_DEV
|
|||
PARTITION1=${LOOP_DEV}p1
|
||||
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
|
||||
sudo mkfs.fat $PARTITION1 > /dev/null
|
|
@ -1,44 +1,38 @@
|
|||
#!/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
|
||||
echo "You must set the BANAN_DISK_IMAGE_PATH environment variable" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ -z $BANAN_SYSROOT ]]; then
|
||||
echo "You must set the BANAN_SYSROOT environment variable" >&2
|
||||
if [[ -z $BANAN_SYSROOT_TAR ]]; then
|
||||
echo "You must set the BANAN_SYSROOT_TAR environment variable" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [[ ! -f $BANAN_DISK_IMAGE_PATH ]]; then
|
||||
$BANAN_SCRIPT_DIR/image-full.sh
|
||||
exit 0
|
||||
fi
|
||||
|
||||
if [[ "$1" == "full" ]] || [[ ! -f $BANAN_DISK_IMAGE_PATH ]]; then
|
||||
$BANAN_SCRIPT_DIR/image-create.sh
|
||||
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-full.sh
|
||||
exit 0
|
||||
$BANAN_SCRIPT_DIR/image-create.sh
|
||||
fi
|
||||
fi
|
||||
|
||||
MOUNT_DIR=/mnt
|
||||
|
||||
LOOP_DEV=$(sudo losetup -f --show $BANAN_DISK_IMAGE_PATH)
|
||||
LOOP_DEV=$(sudo losetup --show -f "$BANAN_DISK_IMAGE_PATH")
|
||||
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
|
||||
|
||||
|
|
|
@ -1,9 +1,19 @@
|
|||
if (NOT DEFINED ENV{BANAN_ARCH})
|
||||
message(FATAL_ERROR "environment variable BANAN_ARCH not defined")
|
||||
endif ()
|
||||
|
||||
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(CMAKE_SYSTEM_NAME banan-os)
|
||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(Shell PUBLIC -O2 -g)
|
|||
target_link_libraries(Shell PUBLIC libc ban)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(cat-mmap PUBLIC -O2 -g)
|
|||
target_link_libraries(cat-mmap PUBLIC libc)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(cat PUBLIC -O2 -g)
|
|||
target_link_libraries(cat PUBLIC libc)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(chmod PUBLIC -O2 -g)
|
|||
target_link_libraries(chmod PUBLIC libc)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(cp PUBLIC -O2 -g)
|
|||
target_link_libraries(cp PUBLIC libc ban)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
|
|
@ -20,9 +20,8 @@ target_compile_options($PROGRAM_NAME PUBLIC -O2 -g)
|
|||
target_link_libraries($PROGRAM_NAME PUBLIC libc)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
EOF
|
||||
|
||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(dd PUBLIC -O2 -g)
|
|||
target_link_libraries(dd PUBLIC libc)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(echo PUBLIC -O2 -g)
|
|||
target_link_libraries(echo PUBLIC libc)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(id PUBLIC -O2 -g)
|
|||
target_link_libraries(id PUBLIC libc ban)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(init PUBLIC -O2 -g)
|
|||
target_link_libraries(init PUBLIC libc ban)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(ls PUBLIC -O2 -g)
|
|||
target_link_libraries(ls PUBLIC libc)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(meminfo PUBLIC -O2 -g)
|
|||
target_link_libraries(meminfo PUBLIC libc)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(mkdir PUBLIC -O2 -g)
|
|||
target_link_libraries(mkdir PUBLIC libc)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(mmap-shared-test PUBLIC -O2 -g)
|
|||
target_link_libraries(mmap-shared-test PUBLIC libc)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(poweroff PUBLIC -O2 -g)
|
|||
target_link_libraries(poweroff PUBLIC libc)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(rm PUBLIC -O2 -g)
|
|||
target_link_libraries(rm PUBLIC libc ban)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(snake PUBLIC -O2 -g)
|
|||
target_link_libraries(snake PUBLIC libc)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(stat PUBLIC -O2 -g)
|
|||
target_link_libraries(stat PUBLIC libc ban)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(sync PUBLIC -O2 -g)
|
|||
target_link_libraries(sync PUBLIC libc)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(tee PUBLIC -O2 -g)
|
|||
target_link_libraries(tee PUBLIC libc)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(test-globals PUBLIC -O2 -g)
|
|||
target_link_libraries(test-globals PUBLIC libc)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(test PUBLIC -O2 -g)
|
|||
target_link_libraries(test PUBLIC libc)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(touch PUBLIC -O2 -g)
|
|||
target_link_libraries(touch PUBLIC libc)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(u8sum PUBLIC -O2 -g)
|
|||
target_link_libraries(u8sum PUBLIC libc)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(whoami PUBLIC -O2 -g)
|
|||
target_link_libraries(whoami PUBLIC libc ban)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
|
|
@ -11,7 +11,6 @@ target_compile_options(yes PUBLIC -O2 -g)
|
|||
target_link_libraries(yes PUBLIC libc)
|
||||
|
||||
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
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
|
Loading…
Reference in New Issue