# A place for common parts of SEMS modules rules
#
# We adding sems_ prefix to the internal name of the library to avoid nasty
# issue then this name is equals to external library, our module links to. E.g.
# the issue, then speex module should be linked to -lspeex

include(${CMAKE_SOURCE_DIR}/cmake/doc.rules.txt)
include(${CMAKE_SOURCE_DIR}/cmake/config.rules.txt)
include(${CMAKE_SOURCE_DIR}/cmake/audio.rules.txt)

add_library(sems_${sems_module_name} MODULE ${${sems_module_name}_SRCS})

if(APPLE)
  set(CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS
      "${CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS} -flat_namespace -undefined suppress"
  )
  set(CMAKE_SHARED_MODULE_CREATE_C_FLAGS
      "${CMAKE_SHARED_MODULE_CREATE_C_FLAGS} -flat_namespace -undefined suppress"
  )
endif(APPLE)

add_definitions(-DMOD_NAME="${sems_module_name}")

# all modules should be linked against ${CMAKE_DL_LIBS} at least and with
# additional ${sems_module_libs} if they exists
target_link_libraries(sems_${sems_module_name} ${CMAKE_DL_LIBS}
                      ${sems_module_libs})

set_target_properties(sems_${sems_module_name} PROPERTIES OUTPUT_NAME
                                                          ${sems_module_name})
set_target_properties(sems_${sems_module_name} PROPERTIES PREFIX "")

install(TARGETS sems_${sems_module_name}
        LIBRARY DESTINATION ${SEMS_EXEC_PREFIX}/${SEMS_LIBDIR}/sems/plug-in/)

if(NOT DEFINED ${sems_module_name}_docs)
  if(EXISTS ${CMAKE_SOURCE_DIR}/doc/Readme.${sems_module_name}.txt)
    set(${sems_module_name}_docs
        ${CMAKE_SOURCE_DIR}/doc/Readme.${sems_module_name}.txt)
  endif(EXISTS ${CMAKE_SOURCE_DIR}/doc/Readme.${sems_module_name}.txt)
endif(NOT DEFINED ${sems_module_name}_docs)

sems_install_docs("${${sems_module_name}_docs}"
                  "${${sems_module_name}_doc_dirs}")

if(NOT DEFINED ${sems_module_name}_config_files)
  sems_install_configs("${sems_module_name}")
else(NOT DEFINED ${sems_module_name}_config_files)
  sems_install_configs("${${sems_module_name}_config_files}")
endif(NOT DEFINED ${sems_module_name}_config_files)

if(DEFINED ${sems_module_name}_audio_files)
  sems_install_audio("${sems_module_name}" "${${sems_module_name}_audio_files}")
endif(DEFINED ${sems_module_name}_audio_files)
