From f75230dd9de6701cdecd1fc97a91f422e38f9a3c Mon Sep 17 00:00:00 2001 From: Timo Lotterbach Date: Fri, 4 Jan 2013 03:59:32 -0800 Subject: [PATCH] CMake: use project_type(PLUGIN) to create list of statically linked plugins plugins only have to define 'PLUGIN' as type to support static linking into LayerManagerService binary. this removed a lot of repetitive cmake code for each plugin. Signed-off-by: Timo Lotterbach --- .../GenericCommunicator/CMakeLists.txt | 24 +++++---------------- .../SystemdHealthMonitor/CMakeLists.txt | 25 +++++----------------- .../Renderers/Platform/GLXRenderer/CMakeLists.txt | 24 +++++---------------- .../Renderers/Platform/TextRenderer/CMakeLists.txt | 25 +++++----------------- .../Platform/WaylandDrmGLESRenderer/CMakeLists.txt | 25 +++++----------------- .../WaylandFbdevGLESRenderer/CMakeLists.txt | 25 +++++----------------- .../Platform/WaylandX11GLESRenderer/CMakeLists.txt | 25 +++++----------------- .../Platform/X11GLESRenderer/CMakeLists.txt | 25 +++++----------------- .../ExampleSceneProvider/CMakeLists.txt | 25 +++++----------------- cmake/modules/CustomMacros.txt | 6 ++++++ 10 files changed, 51 insertions(+), 178 deletions(-) diff --git a/LayerManagerPlugins/Communicators/GenericCommunicator/CMakeLists.txt b/LayerManagerPlugins/Communicators/GenericCommunicator/CMakeLists.txt index 5bef5e5..51583cc 100644 --- a/LayerManagerPlugins/Communicators/GenericCommunicator/CMakeLists.txt +++ b/LayerManagerPlugins/Communicators/GenericCommunicator/CMakeLists.txt @@ -44,28 +44,14 @@ set(SRC_FILES src/GenericCommunicator.cpp ) -set(PLUGIN_INSTALL_PATH lib/layermanager/communicator) - -#=========================================================================== -# create statically linked plugin -#=========================================================================== -if (WITH_STATIC_LIBRARIES) - - add_library(${PROJECT_NAME} STATIC ${SRC_FILES}) - - set (STATICALLY_LINKED_PLUGINS ${STATICALLY_LINKED_PLUGINS} - ${PROJECT_NAME} CACHE INTERNAL "list of static plugins") - #=========================================================================== -# create dynamically linked plugin +# create plugin #=========================================================================== -else(WITH_STATIC_LIBRARIES) - - add_library(${PROJECT_NAME} SHARED ${SRC_FILES}) - - install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${PLUGIN_INSTALL_PATH}) +add_library(${PROJECT_NAME} ${LIBRARY_BUILDMODE} ${SRC_FILES}) -endif(WITH_STATIC_LIBRARIES) +install(TARGETS ${PROJECT_NAME} + LIBRARY DESTINATION lib/layermanager/communicator + ARCHIVE DESTINATION lib/layermanager/static) #=========================================================================== # external libraries diff --git a/LayerManagerPlugins/HealthMonitor/SystemdHealthMonitor/CMakeLists.txt b/LayerManagerPlugins/HealthMonitor/SystemdHealthMonitor/CMakeLists.txt index 1e012f3..a5412de 100644 --- a/LayerManagerPlugins/HealthMonitor/SystemdHealthMonitor/CMakeLists.txt +++ b/LayerManagerPlugins/HealthMonitor/SystemdHealthMonitor/CMakeLists.txt @@ -43,29 +43,14 @@ set(SRC_FILES src/SystemdHealthMonitor.cpp ) -set(PLUGIN_INSTALL_PATH lib/layermanager/health) - -#=========================================================================== -# create statically linked plugin #=========================================================================== -if (WITH_STATIC_LIBRARIES) - - add_library(${PROJECT_NAME} STATIC ${SRC_FILES}) - - set (STATICALLY_LINKED_PLUGINS ${STATICALLY_LINKED_PLUGINS} - ${PROJECT_NAME} CACHE INTERNAL "list of static plugins") - +# create plugin #=========================================================================== -# create dynamically linked plugin -#=========================================================================== -else(WITH_STATIC_LIBRARIES) - - add_library(${PROJECT_NAME} SHARED ${SRC_FILES}) - - install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${PLUGIN_INSTALL_PATH}) - -endif(WITH_STATIC_LIBRARIES) +add_library(${PROJECT_NAME} ${LIBRARY_BUILDMODE} ${SRC_FILES}) +install(TARGETS ${PROJECT_NAME} + LIBRARY DESTINATION lib/layermanager/health + ARCHIVE DESTINATION lib/layermanager/static) #=========================================================================== # external libraries diff --git a/LayerManagerPlugins/Renderers/Platform/GLXRenderer/CMakeLists.txt b/LayerManagerPlugins/Renderers/Platform/GLXRenderer/CMakeLists.txt index d853eb6..ca3c70e 100644 --- a/LayerManagerPlugins/Renderers/Platform/GLXRenderer/CMakeLists.txt +++ b/LayerManagerPlugins/Renderers/Platform/GLXRenderer/CMakeLists.txt @@ -55,8 +55,6 @@ set(SRC_FILES src/X11GLXRenderer.cpp ) -set(PLUGIN_INSTALL_PATH lib/layermanager/renderer) - set(X11GLES_RENDERER_PATH ${CMAKE_SOURCE_DIR}/LayerManagerPlugins/Renderers/Platform/X11GLESRenderer) install(FILES ${X11GLES_RENDERER_PATH}/renderer_frag_clear.glslf ${X11GLES_RENDERER_PATH}/renderer_frag.glslf @@ -78,25 +76,13 @@ install(FILES ${X11GLES_RENDERER_PATH}/renderer_frag_clear.glslf ) #=========================================================================== -# create statically linked plugin -#=========================================================================== -if (WITH_STATIC_LIBRARIES) - - add_library(${PROJECT_NAME} STATIC ${SRC_FILES}) - - set (STATICALLY_LINKED_PLUGINS ${STATICALLY_LINKED_PLUGINS} - ${PROJECT_NAME} CACHE INTERNAL "list of static plugins") - -#=========================================================================== -# create dynamically linked plugin +# create plugin #=========================================================================== -else(WITH_STATIC_LIBRARIES) - - add_library(${PROJECT_NAME} SHARED ${SRC_FILES}) - - install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${PLUGIN_INSTALL_PATH}) +add_library(${PROJECT_NAME} ${LIBRARY_BUILDMODE} ${SRC_FILES}) -endif(WITH_STATIC_LIBRARIES) +install(TARGETS ${PROJECT_NAME} + LIBRARY DESTINATION lib/layermanager/renderer + ARCHIVE DESTINATION lib/layermanager/static) #=========================================================================== # external libraries diff --git a/LayerManagerPlugins/Renderers/Platform/TextRenderer/CMakeLists.txt b/LayerManagerPlugins/Renderers/Platform/TextRenderer/CMakeLists.txt index 4dc2a78..1373858 100644 --- a/LayerManagerPlugins/Renderers/Platform/TextRenderer/CMakeLists.txt +++ b/LayerManagerPlugins/Renderers/Platform/TextRenderer/CMakeLists.txt @@ -45,29 +45,14 @@ set(SRC_FILES src/TextRenderer.cpp ) -set(PLUGIN_INSTALL_PATH lib/layermanager/renderer) - -#=========================================================================== -# create statically linked plugin #=========================================================================== -if (WITH_STATIC_LIBRARIES) - - add_library(${PROJECT_NAME} STATIC ${SRC_FILES}) - - set (STATICALLY_LINKED_PLUGINS ${STATICALLY_LINKED_PLUGINS} - ${PROJECT_NAME} CACHE INTERNAL "list of static plugins") - +# create plugin #=========================================================================== -# create dynamically linked plugin -#=========================================================================== -else(WITH_STATIC_LIBRARIES) - - add_library(${PROJECT_NAME} SHARED ${SRC_FILES}) - - install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${PLUGIN_INSTALL_PATH}) - -endif(WITH_STATIC_LIBRARIES) +add_library(${PROJECT_NAME} ${LIBRARY_BUILDMODE} ${SRC_FILES}) +install(TARGETS ${PROJECT_NAME} + LIBRARY DESTINATION lib/layermanager/renderer + ARCHIVE DESTINATION lib/layermanager/static) #=========================================================================== # external libraries diff --git a/LayerManagerPlugins/Renderers/Platform/WaylandDrmGLESRenderer/CMakeLists.txt b/LayerManagerPlugins/Renderers/Platform/WaylandDrmGLESRenderer/CMakeLists.txt index 7ad1a40..d567441 100644 --- a/LayerManagerPlugins/Renderers/Platform/WaylandDrmGLESRenderer/CMakeLists.txt +++ b/LayerManagerPlugins/Renderers/Platform/WaylandDrmGLESRenderer/CMakeLists.txt @@ -52,8 +52,6 @@ set(SRC_FILES src/WaylandDrmGLESRenderer.cpp ) -set(PLUGIN_INSTALL_PATH lib/layermanager/renderer) - set(X11GLES_RENDERER_PATH ${CMAKE_SOURCE_DIR}/LayerManagerPlugins/Renderers/Platform/X11GLESRenderer) install(FILES ${X11GLES_RENDERER_PATH}/renderer_frag_clear.glslf ${X11GLES_RENDERER_PATH}/renderer_frag.glslf @@ -75,26 +73,13 @@ install(FILES ${X11GLES_RENDERER_PATH}/renderer_frag_clear.glslf ) #=========================================================================== -# create statically linked plugin -#=========================================================================== -if (WITH_STATIC_LIBRARIES) - - add_library(${PROJECT_NAME} STATIC ${SRC_FILES}) - - set (STATICALLY_LINKED_PLUGINS ${STATICALLY_LINKED_PLUGINS} - ${PROJECT_NAME} CACHE INTERNAL "list of static plugins") - +# create plugin #=========================================================================== -# create dynamically linked plugin -#=========================================================================== -else(WITH_STATIC_LIBRARIES) - - add_library(${PROJECT_NAME} SHARED ${SRC_FILES}) - - install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${PLUGIN_INSTALL_PATH}) - -endif(WITH_STATIC_LIBRARIES) +add_library(${PROJECT_NAME} ${LIBRARY_BUILDMODE} ${SRC_FILES}) +install(TARGETS ${PROJECT_NAME} + LIBRARY DESTINATION lib/layermanager/renderer + ARCHIVE DESTINATION lib/layermanager/static) #=========================================================================== # external libraries diff --git a/LayerManagerPlugins/Renderers/Platform/WaylandFbdevGLESRenderer/CMakeLists.txt b/LayerManagerPlugins/Renderers/Platform/WaylandFbdevGLESRenderer/CMakeLists.txt index b78496f..3a71a55 100644 --- a/LayerManagerPlugins/Renderers/Platform/WaylandFbdevGLESRenderer/CMakeLists.txt +++ b/LayerManagerPlugins/Renderers/Platform/WaylandFbdevGLESRenderer/CMakeLists.txt @@ -52,8 +52,6 @@ set(SRC_FILES src/WaylandFbdevGLESRenderer.cpp ) -set(PLUGIN_INSTALL_PATH lib/layermanager/renderer) - set(X11GLES_RENDERER_PATH ${CMAKE_SOURCE_DIR}/LayerManagerPlugins/Renderers/Platform/X11GLESRenderer) install(FILES ${X11GLES_RENDERER_PATH}/renderer_frag_clear.glslf ${X11GLES_RENDERER_PATH}/renderer_frag.glslf @@ -75,26 +73,13 @@ install(FILES ${X11GLES_RENDERER_PATH}/renderer_frag_clear.glslf ) #=========================================================================== -# create statically linked plugin -#=========================================================================== -if (WITH_STATIC_LIBRARIES) - - add_library(${PROJECT_NAME} STATIC ${SRC_FILES}) - - set (STATICALLY_LINKED_PLUGINS ${STATICALLY_LINKED_PLUGINS} - ${PROJECT_NAME} CACHE INTERNAL "list of static plugins") - +# create plugin #=========================================================================== -# create dynamically linked plugin -#=========================================================================== -else(WITH_STATIC_LIBRARIES) - - add_library(${PROJECT_NAME} SHARED ${SRC_FILES}) - - install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${PLUGIN_INSTALL_PATH}) - -endif(WITH_STATIC_LIBRARIES) +add_library(${PROJECT_NAME} ${LIBRARY_BUILDMODE} ${SRC_FILES}) +install(TARGETS ${PROJECT_NAME} + LIBRARY DESTINATION lib/layermanager/renderer + ARCHIVE DESTINATION lib/layermanager/static) #=========================================================================== # external libraries diff --git a/LayerManagerPlugins/Renderers/Platform/WaylandX11GLESRenderer/CMakeLists.txt b/LayerManagerPlugins/Renderers/Platform/WaylandX11GLESRenderer/CMakeLists.txt index c90ddaf..07041ba 100644 --- a/LayerManagerPlugins/Renderers/Platform/WaylandX11GLESRenderer/CMakeLists.txt +++ b/LayerManagerPlugins/Renderers/Platform/WaylandX11GLESRenderer/CMakeLists.txt @@ -52,8 +52,6 @@ set(SRC_FILES src/WaylandX11GLESRenderer.cpp ) -set(PLUGIN_INSTALL_PATH lib/layermanager/renderer) - set(X11GLES_RENDERER_PATH ${CMAKE_SOURCE_DIR}/LayerManagerPlugins/Renderers/Platform/X11GLESRenderer) install(FILES ${X11GLES_RENDERER_PATH}/renderer_frag_clear.glslf ${X11GLES_RENDERER_PATH}/renderer_frag.glslf @@ -75,26 +73,13 @@ install(FILES ${X11GLES_RENDERER_PATH}/renderer_frag_clear.glslf ) #=========================================================================== -# create statically linked plugin -#=========================================================================== -if (WITH_STATIC_LIBRARIES) - - add_library(${PROJECT_NAME} STATIC ${SRC_FILES}) - - set (STATICALLY_LINKED_PLUGINS ${STATICALLY_LINKED_PLUGINS} - ${PROJECT_NAME} CACHE INTERNAL "list of static plugins") - +# create plugin #=========================================================================== -# create dynamically linked plugin -#=========================================================================== -else(WITH_STATIC_LIBRARIES) - - add_library(${PROJECT_NAME} SHARED ${SRC_FILES}) - - install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${PLUGIN_INSTALL_PATH}) - -endif(WITH_STATIC_LIBRARIES) +add_library(${PROJECT_NAME} ${LIBRARY_BUILDMODE} ${SRC_FILES}) +install(TARGETS ${PROJECT_NAME} + LIBRARY DESTINATION lib/layermanager/renderer + ARCHIVE DESTINATION lib/layermanager/static) #=========================================================================== # external libraries diff --git a/LayerManagerPlugins/Renderers/Platform/X11GLESRenderer/CMakeLists.txt b/LayerManagerPlugins/Renderers/Platform/X11GLESRenderer/CMakeLists.txt index 34676de..98474bc 100644 --- a/LayerManagerPlugins/Renderers/Platform/X11GLESRenderer/CMakeLists.txt +++ b/LayerManagerPlugins/Renderers/Platform/X11GLESRenderer/CMakeLists.txt @@ -60,8 +60,6 @@ set(SRC_FILES src/ShaderProgramGLES.cpp ) -set(PLUGIN_INSTALL_PATH lib/layermanager/renderer) - install(FILES renderer_frag_clear.glslf renderer_frag.glslf @@ -84,26 +82,13 @@ install(FILES ) #=========================================================================== -# create statically linked plugin -#=========================================================================== -if (WITH_STATIC_LIBRARIES) - - add_library(${PROJECT_NAME} STATIC ${SRC_FILES}) - - set (STATICALLY_LINKED_PLUGINS ${STATICALLY_LINKED_PLUGINS} - ${PROJECT_NAME} CACHE INTERNAL "list of static plugins") - +# create plugin #=========================================================================== -# create dynamically linked plugin -#=========================================================================== -else(WITH_STATIC_LIBRARIES) - - add_library(${PROJECT_NAME} SHARED ${SRC_FILES}) - - install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${PLUGIN_INSTALL_PATH}) - -endif(WITH_STATIC_LIBRARIES) +add_library(${PROJECT_NAME} ${LIBRARY_BUILDMODE} ${SRC_FILES}) +install(TARGETS ${PROJECT_NAME} + LIBRARY DESTINATION lib/layermanager/renderer + ARCHIVE DESTINATION lib/layermanager/static) #=========================================================================== # external libraries diff --git a/LayerManagerPlugins/SceneProvider/ExampleSceneProvider/CMakeLists.txt b/LayerManagerPlugins/SceneProvider/ExampleSceneProvider/CMakeLists.txt index e97f35e..4a118f4 100644 --- a/LayerManagerPlugins/SceneProvider/ExampleSceneProvider/CMakeLists.txt +++ b/LayerManagerPlugins/SceneProvider/ExampleSceneProvider/CMakeLists.txt @@ -39,29 +39,14 @@ set(SRC_FILES src/ExampleSceneProvider.cpp ) -set(PLUGIN_INSTALL_PATH lib/layermanager/sceneprovider) - -#=========================================================================== -# create statically linked plugin #=========================================================================== -if (WITH_STATIC_LIBRARIES) - - add_library(${PROJECT_NAME} STATIC ${SRC_FILES}) - - set (STATICALLY_LINKED_PLUGINS ${STATICALLY_LINKED_PLUGINS} - ${PROJECT_NAME} CACHE INTERNAL "list of static plugins") - +# create plugin #=========================================================================== -# create dynamically linked plugin -#=========================================================================== -else(WITH_STATIC_LIBRARIES) - - add_library(${PROJECT_NAME} SHARED ${SRC_FILES}) - - install(TARGETS ${PROJECT_NAME} LIBRARY DESTINATION ${PLUGIN_INSTALL_PATH}) - -endif(WITH_STATIC_LIBRARIES) +add_library(${PROJECT_NAME} ${LIBRARY_BUILDMODE} ${SRC_FILES}) +install(TARGETS ${PROJECT_NAME} + LIBRARY DESTINATION lib/layermanager/sceneprovider + ARCHIVE DESTINATION lib/layermanager/static) #=========================================================================== # external libraries diff --git a/cmake/modules/CustomMacros.txt b/cmake/modules/CustomMacros.txt index 4eb8864..1f222ba 100644 --- a/cmake/modules/CustomMacros.txt +++ b/cmake/modules/CustomMacros.txt @@ -28,6 +28,12 @@ MACRO(project_type mode) string(TOUPPER ${mode} mode_capital) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${COMPILER_FLAGS_${mode_capital}}") set(CMAKE_C_FLAGS "${CMAKE_CXX_FLAGS}") + + if (mode_capital STREQUAL "PLUGIN" AND WITH_STATIC_LIBRARIES) + set (STATICALLY_LINKED_PLUGINS ${STATICALLY_LINKED_PLUGINS} + ${PROJECT_NAME} CACHE INTERNAL "list of static plugins") + endif (mode_capital STREQUAL "PLUGIN" AND WITH_STATIC_LIBRARIES) + ENDMACRO(project_type) MACRO(export_build_flag name description) -- 2.7.4