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 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)
|
||||
install(TARGETS ban OPTIONAL)
|
||||
|
|
|
@ -27,9 +27,6 @@ set(BUILD_SHARED_LIBS True)
|
|||
|
||||
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}
|
||||
function(banan_include_headers target library)
|
||||
target_include_directories(${target} PRIVATE $<TARGET_PROPERTY:${library},SOURCE_DIR>/include)
|
||||
|
|
|
@ -245,7 +245,7 @@ endif()
|
|||
|
||||
add_custom_command(
|
||||
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 ")
|
||||
|
|
|
@ -21,5 +21,8 @@ foreach(library ${USERSPACE_LIBRARIES})
|
|||
target_link_options(${library_lower} PRIVATE -nolibc)
|
||||
# Default compile options
|
||||
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()
|
||||
endforeach()
|
||||
|
|
|
@ -76,7 +76,10 @@ add_library(libc-static STATIC $<TARGET_OBJECTS:objlibc>)
|
|||
add_library(libc-shared SHARED $<TARGET_OBJECTS:objlibc>)
|
||||
|
||||
target_link_options(libc-static PRIVATE -nostdlib)
|
||||
target_link_libraries(libc-static PRIVATE -lgcc)
|
||||
|
||||
target_link_options(libc-shared PRIVATE -nostdlib)
|
||||
target_link_libraries(libc-shared PRIVATE -lgcc)
|
||||
|
||||
install(TARGETS libc-static 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-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)
|
||||
|
||||
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