add object module from corelib
This commit is contained in:
@@ -1,4 +1,11 @@
|
||||
macro(add_bluelib_module module_name)
|
||||
function(add_bluelib_module)
|
||||
set(options)
|
||||
set(one_value_args NAME)
|
||||
set(multi_value_args DEPENDENCIES)
|
||||
cmake_parse_arguments(PARSE_ARGV 0 arg "${options}" "${one_value_args}" "${multi_value_args}")
|
||||
|
||||
set(module_name ${arg_NAME})
|
||||
|
||||
file(GLOB sources *.c *.h)
|
||||
file(GLOB sys_sources sys/${b_system_name}/*.c sys/${b_system_name}/*.h)
|
||||
set(root_header include/blue/${module_name}.h)
|
||||
@@ -16,6 +23,10 @@ macro(add_bluelib_module module_name)
|
||||
target_include_directories(blue-${module_name}-obj PUBLIC include/)
|
||||
target_compile_definitions(blue-${module_name}-obj PUBLIC ${module_preproc_token})
|
||||
|
||||
foreach (dep ${arg_DEPENDENCIES})
|
||||
target_link_libraries(blue-${module_name}-obj blue-${dep}-obj)
|
||||
endforeach (dep)
|
||||
|
||||
message(STATUS "Building module ${module_name} (shared)")
|
||||
add_library(blue-${module_name} SHARED $<TARGET_OBJECTS:blue-${module_name}-obj>)
|
||||
message(STATUS "Building module ${module_name} (static)")
|
||||
@@ -24,7 +35,12 @@ macro(add_bluelib_module module_name)
|
||||
target_include_directories(blue-${module_name} PUBLIC include/)
|
||||
target_include_directories(blue-${module_name}-s PUBLIC include/)
|
||||
|
||||
foreach (dep ${arg_DEPENDENCIES})
|
||||
target_link_libraries(blue-${module_name} blue-${dep})
|
||||
target_link_libraries(blue-${module_name}-s blue-${dep}-s)
|
||||
endforeach (dep)
|
||||
|
||||
install(TARGETS blue-${module_name} blue-${module_name}-s)
|
||||
install(FILES ${root_header} DESTINATION include/blue)
|
||||
install(FILES ${headers} DESTINATION include/blue/${module_name})
|
||||
endmacro(add_bluelib_module)
|
||||
endfunction(add_bluelib_module)
|
||||
|
||||
Reference in New Issue
Block a user