From 2db6efff3b4bfe91a4b1b2c65dd8c05336a1c6b4 Mon Sep 17 00:00:00 2001 From: Raphael Coeffic Date: Thu, 17 Mar 2011 14:24:20 +0300 Subject: [PATCH] Fix compiling with cmake on MacOSX Tested-by: Peter Lemenkov --- CMakeLists.txt | 1 + cmake/dsm.lib.rules.txt | 10 +++++++++- cmake/module.rules.txt | 10 +++++++++- core/plug-in/speex/CMakeLists.txt | 3 +++ 4 files changed, 22 insertions(+), 2 deletions(-) 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)