allow plugins to be compiled into the f00bar main binary

This commit is contained in:
Daniel Eklöf 2019-01-14 20:57:03 +01:00
parent 00679dbeeb
commit 0d591fe5a1
25 changed files with 400 additions and 72 deletions

View file

@ -4,8 +4,16 @@ add_library(particle-sdk INTERFACE)
target_compile_options(particle-sdk INTERFACE ${CAIRO_CFLAGS_OTHER})
target_include_directories(particle-sdk INTERFACE ${CAIRO_INCLUDE_DIRS})
if (CORE_PLUGINS_AS_SHARED_LIBRARIES)
set(lib_type MODULE)
set(dynlist_lib_type SHARED)
else ()
set(lib_type STATIC)
set(dynlist_lib_type STATIC)
endif ()
# Only an exposable, not a particle. Used by a couple of modules
add_library(dynlist SHARED dynlist.c dynlist.h)
add_library(dynlist ${dynlist_lib_type} dynlist.c dynlist.h)
target_link_libraries(dynlist PRIVATE particle-sdk)
set(CMAKE_SHARED_MODULE_PREFIX particle_)
@ -13,10 +21,12 @@ set(CMAKE_SHARED_MODULE_PREFIX particle_)
set(particles empty list map progress-bar ramp string)
foreach (particle ${particles})
add_library(${particle} MODULE ${particle}.c)
add_library(${particle} ${lib_type} ${particle}.c)
target_link_libraries(${particle} particle-sdk)
endforeach ()
target_link_libraries(string ${CAIRO_LIBRARIES})
install(TARGETS ${particles} dynlist DESTINATION lib/f00bar)
if (CORE_PLUGINS_AS_SHARED_LIBRARIES)
install(TARGETS ${particles} dynlist DESTINATION lib/f00bar)
endif ()