diff --git a/CMakeLists.txt b/CMakeLists.txt index 93909755..257743af 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,6 +3,7 @@ CMAKE_MINIMUM_REQUIRED(VERSION 2.4) IF(COMMAND cmake_policy) # Don't do automatic escaping of variables CMAKE_POLICY(SET CMP0005 OLD) + CMAKE_POLICY(SET CMP0003 NEW) ENDIF(COMMAND cmake_policy) diff --git a/cmake/dsm.lib.rules.txt b/cmake/dsm.lib.rules.txt index c7daa27b..1358b48c 100644 --- a/cmake/dsm.lib.rules.txt +++ b/cmake/dsm.lib.rules.txt @@ -7,13 +7,21 @@ INCLUDE_DIRECTORIES (../..) # 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 -ADD_LIBRARY(sems_dsm_${sems_dsm_module_name} SHARED ${${sems_dsm_module_name}_SRCS}) +ADD_LIBRARY(sems_dsm_${sems_dsm_module_name} MODULE ${${sems_dsm_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) # all modules should be linked against ${CMAKE_DL_LIBS} at least # and with additional ${sems_dsm_module_libs} if they exists TARGET_LINK_LIBRARIES(sems_dsm_${sems_dsm_module_name} ${CMAKE_DL_LIBS} ${sems_dsm_module_libs}) SET_TARGET_PROPERTIES(sems_dsm_${sems_dsm_module_name} PROPERTIES OUTPUT_NAME ${sems_dsm_module_name}) +SET_TARGET_PROPERTIES(sems_dsm_${sems_dsm_module_name} PROPERTIES PREFIX "") INSTALL( TARGETS sems_dsm_${sems_dsm_module_name} diff --git a/cmake/module.rules.txt b/cmake/module.rules.txt index af0694a1..9a8636ec 100644 --- a/cmake/module.rules.txt +++ b/cmake/module.rules.txt @@ -8,7 +8,14 @@ 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} SHARED ${${sems_module_name}_SRCS}) +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}\\\") @@ -17,6 +24,7 @@ ADD_DEFINITIONS(-DMOD_NAME=\\\"${sems_module_name}\\\") 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} diff --git a/core/plug-in/speex/CMakeLists.txt b/core/plug-in/speex/CMakeLists.txt index 6508fc0a..a2ee9099 100644 --- a/core/plug-in/speex/CMakeLists.txt +++ b/core/plug-in/speex/CMakeLists.txt @@ -6,6 +6,9 @@ INCLUDE_DIRECTORIES(${SPEEX_INCLUDE_DIR}) # module_cflags = -ansi # -DNOFPU +add_library(speex SHARED IMPORTED) +set_property(TARGET speex PROPERTY IMPORTED_LOCATION ${SPEEX_LIBRARIES}) + SET(sems_module_name speex) SET(sems_module_libs speex) INCLUDE(${CMAKE_SOURCE_DIR}/cmake/module.rules.txt)