Skip to content

Commit

Permalink
build: add EMBED_TARGET parameter to SQUASH_PLUGIN function
Browse files Browse the repository at this point in the history
  • Loading branch information
nemequ committed Jun 14, 2016
1 parent 0ce4ad8 commit 620eb52
Showing 1 changed file with 16 additions and 14 deletions.
30 changes: 16 additions & 14 deletions cmake/SquashPlugin.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ include (RequireStandard)

function (SQUASH_PLUGIN)
set (options EXTRA_WARNINGS DEFAULT_DISABLED)
set (oneValueArgs NAME EXTERNAL_PKG EXTERNAL_PKG_PREFIX C_STANDARD CXX_STANDARD)
set (oneValueArgs NAME EXTERNAL_PKG EXTERNAL_PKG_PREFIX C_STANDARD CXX_STANDARD EMBED_TARGET)
set (multiValueArgs SOURCES EMBED_SOURCES LIBRARIES LDFLAGS COMPILER_FLAGS EMBED_COMPILER_FLAGS INCLUDE_DIRS EMBED_INCLUDE_DIRS DEFINES EMBED_DEFINES ALLOW_UNDEFINED_DEFINES NO_UNDEFINED_DEFINES)
cmake_parse_arguments(SQUASH_PLUGIN "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
unset (options)
Expand All @@ -15,27 +15,26 @@ function (SQUASH_PLUGIN)
string (TOUPPER "${SQUASH_PLUGIN_NAME}" PLUGIN_NAME_UC)
string (REGEX REPLACE "[^a-zA-Z0-9]" "_" PLUGIN_NAME_UC "${PLUGIN_NAME_UC}")

if (SQUASH_PLUGIN_DEFAULT_DISABLED)
option("ENABLE_${PLUGIN_NAME_UC}" "Enable ${SQUASH_PLUGIN_NAME} plugin")
if (NOT ${ENABLE_${PLUGIN_NAME_UC}})
return ()
endif ()
if (NOT SQUASH_PLUGIN_DEFAULT_DISABLED)
option("ENABLE_${PLUGIN_NAME_UC}" "Enable ${SQUASH_PLUGIN_NAME} plugin" ON)
else ()
option("DISABLE_${PLUGIN_NAME_UC}" "Disable ${SQUASH_PLUGIN_NAME} plugin")
if (${DISABLE_${PLUGIN_NAME_UC}})
return ()
endif ()
option("ENABLE_${PLUGIN_NAME_UC}" "Enable ${SQUASH_PLUGIN_NAME} plugin" OFF)
endif ()

if (NOT ENABLE_${PLUGIN_NAME_UC})
message(STATUS "${SQUASH_PLUGIN_NAME} plugin: disabled")
return ()
endif ()

set (PLUGIN_TARGET squash${SQUASH_VERSION_API}-plugin-${SQUASH_PLUGIN_NAME})
set (EMBED TRUE)

if (NOT "${FORCE_IN_TREE_DEPENDENCIES}" STREQUAL "yes")
if (NOT "${SQUASH_PLUGIN_EXTERNAL_PKG_PREFIX}" STREQUAL "")
if (NOT FORCE_IN_TREE_DEPENDENCIES)
if (SQUASH_PLUGIN_EXTERNAL_PKG_PREFIX)
if (${SQUASH_PLUGIN_EXTERNAL_PKG_PREFIX}_FOUND)
set (EMBED FALSE)
endif ()
elseif (NOT "${SQUASH_PLUGIN_EXTERNAL_PKG}" STREQUAL "")
elseif (SQUASH_PLUGIN_EXTERNAL_PKG)
include (FindPkgConfig)

pkg_check_modules ("${PLUGIN_NAME_UC}" "${SQUASH_PLUGIN_EXTERNAL_PKG}")
Expand Down Expand Up @@ -74,13 +73,16 @@ function (SQUASH_PLUGIN)
target_require_cxx_standard (${PLUGIN_TARGET} ${SQUASH_PLUGIN_CXX_STANDARD})
endif ()

if (${EMBED})
if (EMBED)
message(STATUS "${SQUASH_PLUGIN_NAME} plugin: enabled")
foreach (source ${SQUASH_PLUGIN_EMBED_SOURCES})
set_property (SOURCE ${source} APPEND PROPERTY COMPILE_DEFINITIONS ${SQUASH_PLUGIN_EMBED_DEFINES})
source_file_add_compiler_flags (${source} ${SQUASH_PLUGIN_EMBED_COMPILER_FLAGS})
endforeach (source)
target_include_directories (${PLUGIN_TARGET} PRIVATE ${SQUASH_PLUGIN_EMBED_INCLUDE_DIRS})
target_link_libraries (${PLUGIN_TARGET} ${SQUASH_PLUGIN_EMBED_TARGET})
else ()
message(STATUS "${SQUASH_PLUGIN_NAME} plugin: using external library")
if (NOT "${${SQUASH_PLUGIN_EXTERNAL_PKG_PREFIX}_LDFLAGS}" STREQUAL "")
foreach (ldflag ${${SQUASH_PLUGIN_EXTERNAL_PKG_PREFIX}_LDFLAGS})
set_property (TARGET ${PLUGIN_TARGET} APPEND_STRING PROPERTY LINK_FLAGS " ${ldflag}")
Expand Down

0 comments on commit 620eb52

Please sign in to comment.