BuildSystem: Cleanup and fix cmake files
I now set library SONAME so i don't have to build them in build root. Creating font now makes sure the install directory exists. This allows building using make files. LibC now links agains ligcc
This commit is contained in:
parent
7a10e0e347
commit
cbe3f2a4ac
|
@ -11,5 +11,8 @@ banan_link_library(ban libc)
|
||||||
|
|
||||||
set_target_properties(ban PROPERTIES OUTPUT_NAME libban)
|
set_target_properties(ban PROPERTIES OUTPUT_NAME libban)
|
||||||
|
|
||||||
|
# set SONAME as cmake doesn't set it for some reason??
|
||||||
|
set_target_properties(ban PROPERTIES LINK_FLAGS "-Wl,-soname,libban.so")
|
||||||
|
|
||||||
banan_install_headers(ban)
|
banan_install_headers(ban)
|
||||||
install(TARGETS ban OPTIONAL)
|
install(TARGETS ban OPTIONAL)
|
||||||
|
|
|
@ -27,9 +27,6 @@ set(BUILD_SHARED_LIBS True)
|
||||||
|
|
||||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
||||||
|
|
||||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}")
|
|
||||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}")
|
|
||||||
|
|
||||||
# include headers of ${library} to ${target}
|
# include headers of ${library} to ${target}
|
||||||
function(banan_include_headers target library)
|
function(banan_include_headers target library)
|
||||||
target_include_directories(${target} PRIVATE $<TARGET_PROPERTY:${library},SOURCE_DIR>/include)
|
target_include_directories(${target} PRIVATE $<TARGET_PROPERTY:${library},SOURCE_DIR>/include)
|
||||||
|
|
|
@ -245,7 +245,7 @@ endif()
|
||||||
|
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
OUTPUT font/prefs.psf.o
|
OUTPUT font/prefs.psf.o
|
||||||
COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR} && objcopy -O ${ELF_FORMAT} -B i386 -I binary font/prefs.psf ${CMAKE_CURRENT_BINARY_DIR}/font/prefs.psf.o
|
COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR} && mkdir -p ${CMAKE_CURRENT_BINARY_DIR}/font && objcopy -O ${ELF_FORMAT} -B i386 -I binary font/prefs.psf ${CMAKE_CURRENT_BINARY_DIR}/font/prefs.psf.o
|
||||||
)
|
)
|
||||||
|
|
||||||
set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_COMPILER} <CMAKE_CXX_LINK_FLAGS> <FLAGS> <LINK_FLAGS> -o <TARGET> ${CMAKE_CURRENT_BINARY_DIR}/crti.o ${CMAKE_CURRENT_BINARY_DIR}/crtbegin.o <OBJECTS> ${CMAKE_CURRENT_BINARY_DIR}/crtend.o ${CMAKE_CURRENT_BINARY_DIR}/crtn.o -lgcc ")
|
set(CMAKE_CXX_LINK_EXECUTABLE "${CMAKE_CXX_COMPILER} <CMAKE_CXX_LINK_FLAGS> <FLAGS> <LINK_FLAGS> -o <TARGET> ${CMAKE_CURRENT_BINARY_DIR}/crti.o ${CMAKE_CURRENT_BINARY_DIR}/crtbegin.o <OBJECTS> ${CMAKE_CURRENT_BINARY_DIR}/crtend.o ${CMAKE_CURRENT_BINARY_DIR}/crtn.o -lgcc ")
|
||||||
|
|
|
@ -21,5 +21,8 @@ foreach(library ${USERSPACE_LIBRARIES})
|
||||||
target_link_options(${library_lower} PRIVATE -nolibc)
|
target_link_options(${library_lower} PRIVATE -nolibc)
|
||||||
# Default compile options
|
# Default compile options
|
||||||
target_compile_options(${library_lower} PRIVATE -g -O2 -Wall -Wextra -Werror)
|
target_compile_options(${library_lower} PRIVATE -g -O2 -Wall -Wextra -Werror)
|
||||||
|
|
||||||
|
# set SONAME as cmake doesn't set it for some reason??
|
||||||
|
set_target_properties(${library_lower} PROPERTIES LINK_FLAGS "-Wl,-soname,${library_lower}.so")
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
|
@ -76,7 +76,10 @@ add_library(libc-static STATIC $<TARGET_OBJECTS:objlibc>)
|
||||||
add_library(libc-shared SHARED $<TARGET_OBJECTS:objlibc>)
|
add_library(libc-shared SHARED $<TARGET_OBJECTS:objlibc>)
|
||||||
|
|
||||||
target_link_options(libc-static PRIVATE -nostdlib)
|
target_link_options(libc-static PRIVATE -nostdlib)
|
||||||
|
target_link_libraries(libc-static PRIVATE -lgcc)
|
||||||
|
|
||||||
target_link_options(libc-shared PRIVATE -nostdlib)
|
target_link_options(libc-shared PRIVATE -nostdlib)
|
||||||
|
target_link_libraries(libc-shared PRIVATE -lgcc)
|
||||||
|
|
||||||
install(TARGETS libc-static OPTIONAL)
|
install(TARGETS libc-static OPTIONAL)
|
||||||
install(TARGETS libc-shared OPTIONAL)
|
install(TARGETS libc-shared OPTIONAL)
|
||||||
|
@ -84,6 +87,9 @@ install(TARGETS libc-shared OPTIONAL)
|
||||||
set_target_properties(libc-static PROPERTIES OUTPUT_NAME libc)
|
set_target_properties(libc-static PROPERTIES OUTPUT_NAME libc)
|
||||||
set_target_properties(libc-shared PROPERTIES OUTPUT_NAME libc)
|
set_target_properties(libc-shared PROPERTIES OUTPUT_NAME libc)
|
||||||
|
|
||||||
|
# set SONAME as cmake doesn't set it for some reason??
|
||||||
|
set_target_properties(libc-shared PROPERTIES LINK_FLAGS "-Wl,-soname,libc.so")
|
||||||
|
|
||||||
add_library(libc ALIAS libc-shared)
|
add_library(libc ALIAS libc-shared)
|
||||||
|
|
||||||
execute_process(COMMAND ${CMAKE_CXX_COMPILER} -print-file-name=libgcc_s.so OUTPUT_VARIABLE LIBGCC_S_LINK OUTPUT_STRIP_TRAILING_WHITESPACE)
|
execute_process(COMMAND ${CMAKE_CXX_COMPILER} -print-file-name=libgcc_s.so OUTPUT_VARIABLE LIBGCC_S_LINK OUTPUT_STRIP_TRAILING_WHITESPACE)
|
||||||
|
|
Loading…
Reference in New Issue