diff --git a/src/cmake/add_oiio_plugin.cmake b/src/cmake/add_oiio_plugin.cmake index a1d87addfe..f66bf756e7 100644 --- a/src/cmake/add_oiio_plugin.cmake +++ b/src/cmake/add_oiio_plugin.cmake @@ -12,6 +12,7 @@ # [ SRC source1 ... ] # [ INCLUDE_DIRS include_dir1 ... ] # [ LINK_LIBRARIES external_lib1 ... ] +# [ COMPILE_OPTIONS -Wflag ... ] # [ DEFINITIONS FOO=bar ... ]) # # The plugin name can be specified with NAME, otherwise is inferred from the @@ -34,7 +35,7 @@ # be handed off too the setup of the later OpenImageIO target. # macro (add_oiio_plugin) - cmake_parse_arguments (_plugin "" "NAME" "SRC;INCLUDE_DIRS;LINK_LIBRARIES;DEFINITIONS" ${ARGN}) + cmake_parse_arguments (_plugin "" "NAME" "SRC;INCLUDE_DIRS;LINK_LIBRARIES;COMPILE_OPTIONS;DEFINITIONS" ${ARGN}) # Arguments: args... get_filename_component (_plugin_name ${CMAKE_CURRENT_SOURCE_DIR} NAME_WE) if (NOT _plugin_NAME) @@ -61,6 +62,7 @@ macro (add_oiio_plugin) endforeach () set (libOpenImageIO_srcs "${_plugin_all_source}" PARENT_SCOPE) set (format_plugin_definitions ${format_plugin_definitions} ${_plugin_DEFINITIONS} PARENT_SCOPE) + set (format_plugin_compile_options ${format_plugin_compile_options} ${_plugin_COMPILE_OPTIONS} PARENT_SCOPE) set (format_plugin_include_dirs ${format_plugin_include_dirs} ${_plugin_INCLUDE_DIRS} PARENT_SCOPE) set (format_plugin_libs ${format_plugin_libs} ${_plugin_LINK_LIBRARIES} PARENT_SCOPE) else () @@ -70,6 +72,7 @@ macro (add_oiio_plugin) target_compile_definitions (${_plugin_NAME} PRIVATE ${_plugin_DEFINITIONS} OpenImageIO_EXPORTS) + target_compile_options (${_plugin_NAME} PRIVATE ${_plugin_COMPILE_OPTIONS}) target_include_directories (${_plugin_NAME} BEFORE PRIVATE ${_plugin_INCLUDE_DIRS}) target_link_libraries (${_plugin_NAME} PUBLIC OpenImageIO PRIVATE ${_plugin_LINK_LIBRARIES}) diff --git a/src/libOpenImageIO/CMakeLists.txt b/src/libOpenImageIO/CMakeLists.txt index e08e34a8bf..98b3cec2ec 100644 --- a/src/libOpenImageIO/CMakeLists.txt +++ b/src/libOpenImageIO/CMakeLists.txt @@ -88,6 +88,8 @@ if (EMBEDPLUGINS) PRIVATE EMBED_PLUGINS=1 ${format_plugin_definitions}) + target_compile_options (OpenImageIO + PRIVATE ${format_plugin_compile_options}) target_include_directories (OpenImageIO BEFORE PRIVATE ${format_plugin_include_dirs}) diff --git a/src/raw.imageio/CMakeLists.txt b/src/raw.imageio/CMakeLists.txt index 99ee400945..a5950dd63b 100644 --- a/src/raw.imageio/CMakeLists.txt +++ b/src/raw.imageio/CMakeLists.txt @@ -6,7 +6,8 @@ if (LIBRAW_FOUND) add_oiio_plugin (rawinput.cpp INCLUDE_DIRS ${LibRaw_INCLUDE_DIR} LINK_LIBRARIES ${LibRaw_r_LIBRARIES} - DEFINITIONS "USE_LIBRAW=1" ${LibRaw_r_DEFINITIONS}) + COMPILE_OPTIONS ${LibRaw_r_DEFINITIONS} + DEFINITIONS "USE_LIBRAW=1") else () message (WARNING "Raw plugin will not be built") endif ()