diff --git a/CMakeLists.txt b/CMakeLists.txt index 73adc85..23b31bb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -261,22 +261,43 @@ if(gint IN_LIST TARGET_FOLDERS) src/time/target/gint/time.c) endif() -# TODO: All targets -add_library(fxlibc ${SOURCES}) -target_include_directories(fxlibc PRIVATE include/) -foreach(FOLDER IN LISTS TARGET_FOLDERS) - target_include_directories(fxlibc PRIVATE include/target/${FOLDER}/) +#--- +# Handle "target-specific" fxlibc output format +#--- + +if(FXLIBC_TARGET STREQUAL vhex-sh) + set_property(GLOBAL PROPERTY TARGET_SUPPORTS_SHARED_LIBS TRUE) + add_library(fxlibcStatic STATIC ${SOURCES}) + add_library(fxlibcShared SHARED ${SOURCES}) + set(FXLIBC_TARGET_LIBS "fxlibcStatic;fxlibcShared") +else() + add_library(fxlibcStatic STATIC ${SOURCES}) + set(FXLIBC_TARGET_LIBS "fxlibcStatic") +endif() + + +foreach(FXLIBC_LIB IN LISTS FXLIBC_TARGET_LIBS) + + target_include_directories(${FXLIBC_LIB} PRIVATE include/) + foreach(FOLDER IN LISTS TARGET_FOLDERS) + target_include_directories(${FXLIBC_LIB} PRIVATE include/target/${FOLDER}/) + endforeach() + + set_target_properties(${FXLIBC_LIB} PROPERTIES OUTPUT_NAME "c") + + install(TARGETS ${FXLIBC_LIB} DESTINATION ${LIBDIR}) endforeach() -set_target_properties(fxlibc PROPERTIES - OUTPUT_NAME "c") # libc.a -# Install -install(TARGETS fxlibc DESTINATION ${LIBDIR}) + +#--- +# Do not forget to install headers +#--- + install(DIRECTORY include/ DESTINATION ${INCDIR} PATTERN "target" EXCLUDE) foreach(FOLDER IN LISTS TARGET_FOLDERS)