Blob Blame History Raw
From: Rick Barenthin <dunst0@gmail.com>
Date: Wed, 4 Oct 2017 22:18:56 +0200
Subject: [PATCH] cmake fixes: fixed some cmake files and make Python optinol


diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9a2114fe..5e225967 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -45,6 +45,7 @@ OPTION(SEMS_USE_TTS           "Build with Text-to-speech support (requires Flite
 OPTION(SEMS_USE_OPENSSL       "Build with OpenSSL" OFF)
 OPTION(SEMS_USE_MONITORING    "Build with monitoring support" OFF)
 OPTION(SEMS_USE_IPV6          "Build with IPv6 support" OFF)
+OPTION(SEMS_USE_PYTHON        "Build with Python modules" ON)
 
 # Fix weird static libs handling in old CMake
 IF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} STREQUAL "2.4")
@@ -53,8 +54,14 @@ ELSE (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} STREQUAL "2.4")
 	SET(SEMS_WORKAROUND_FOR_OLD_CMAKE_2_4_FOR_STATIC_LIBS  OFF)
 ENDIF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} STREQUAL "2.4")
 
-# add -lm and -lpthread to all targets
-SET(CMAKE_DL_LIBS ${CMAKE_DL_LIBS} m pthread)
+# add -lm and -lpthread / -lthr to all targets
+
+SET(CMAKE_DL_LIBS ${CMAKE_DL_LIBS} m)
+IF(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+	SET(CMAKE_DL_LIBS ${CMAKE_DL_LIBS} thr)
+ELSE(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+	SET(CMAKE_DL_LIBS ${CMAKE_DL_LIBS} pthread)
+ENDIF(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
 
 IF (NOT SEMS_CFG_PREFIX)
 	SET(SEMS_CFG_PREFIX "")
@@ -191,23 +198,27 @@ ELSE(SEMS_USE_OPENSSL)
 ENDIF(SEMS_USE_OPENSSL)
 
 # Let's try to find Python development files
-FIND_PACKAGE(PythonLibs)
-IF(PYTHONLIBS_FOUND OR PYTHON_LIBRARIES)
-	SET(PYTHONLIBS_FOUND TRUE)
-	MESSAGE(STATUS "Found Python includes:	${PYTHON_INCLUDE_PATH}/Python.h")
-	MESSAGE(STATUS "Found Python library: ${PYTHON_LIBRARIES}")
-	MESSAGE(STATUS "Using Python: YES")
-ELSE(PYTHONLIBS_FOUND OR PYTHON_LIBRARIES)
-	MESSAGE(STATUS "Using Python: NO")
-ENDIF(PYTHONLIBS_FOUND OR PYTHON_LIBRARIES)
-
-# Let's try to find SIP (Python bindings generator) development files
-FIND_PACKAGE(SIP)
-IF(SIP_FOUND)
-	MESSAGE(STATUS "Using SIP: YES")
-ELSE(SIP_FOUND)
-	MESSAGE(STATUS "Using SIP: NO")
-ENDIF(SIP_FOUND)
+IF(SEMS_USE_PYTHON)
+	FIND_PACKAGE(PythonLibs)
+	IF(PYTHONLIBS_FOUND OR PYTHON_LIBRARIES)
+		SET(PYTHONLIBS_FOUND TRUE)
+		MESSAGE(STATUS "Found Python includes:	${PYTHON_INCLUDE_PATH}/Python.h")
+		MESSAGE(STATUS "Found Python library: ${PYTHON_LIBRARIES}")
+		MESSAGE(STATUS "Using Python: YES")
+	ELSE(PYTHONLIBS_FOUND OR PYTHON_LIBRARIES)
+		MESSAGE(STATUS "Using Python: NO")
+	ENDIF(PYTHONLIBS_FOUND OR PYTHON_LIBRARIES)
+
+	# Let's try to find SIP (Python bindings generator) development files
+	FIND_PACKAGE(SIP)
+	IF(SIP_FOUND)
+		MESSAGE(STATUS "Using SIP: YES")
+	ELSE(SIP_FOUND)
+		MESSAGE(STATUS "Using SIP: NO")
+	ENDIF(SIP_FOUND)
+ELSE(SEMS_USE_PYTHON)
+	MESSAGE(STATUS "Using Python modules: NO (default)")
+ENDIF(SEMS_USE_PYTHON)
 
 # Let's try to find MySQL++ development files
 FIND_PACKAGE(MySQLpp)
@@ -263,13 +274,21 @@ INCLUDE_DIRECTORIES (${SEMS_SOURCE_DIR}/core)
 CONFIGURE_FILE( ${SEMS_SOURCE_DIR}/core/sems.h.cmake ${SEMS_SOURCE_DIR}/core/sems.h )
 
 IF(CMAKE_COMPILER_IS_GNUCC)
-	SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_THREAD_SAFE -D_REENTRANT -Wall -fPIC -g -O2")
+	SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_THREAD_SAFE -D_REENTRANT -Wall -fPIC -O2")
 ENDIF(CMAKE_COMPILER_IS_GNUCC)
 
 IF(CMAKE_COMPILER_IS_GNUCXX)
-	SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_THREAD_SAFE -D_REENTRANT -Wall -Wno-reorder -fPIC -std=c++11 -g -O2")
+	SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_THREAD_SAFE -D_REENTRANT -Wall -fPIC -std=c++11 -O2")
 ENDIF(CMAKE_COMPILER_IS_GNUCXX)
 
+IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+	SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_THREAD_SAFE -D_REENTRANT -Wall -std=c++11 -O2")
+ENDIF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+
+IF("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang")
+	SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -D_THREAD_SAFE -D_REENTRANT -Wall -O2")
+ENDIF("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang")
+
 SET(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -D_DEBUG")
 SET(CMAKE_C_FLAGS_DEBUG   "${CMAKE_C_FLAGS_DEBUG}   -D_DEBUG")
 
diff --git a/apps/diameter_client/lib_dbase/CMakeLists.txt b/apps/diameter_client/lib_dbase/CMakeLists.txt
index 5725461b..c8efdb86 100644
--- a/apps/diameter_client/lib_dbase/CMakeLists.txt
+++ b/apps/diameter_client/lib_dbase/CMakeLists.txt
@@ -9,6 +9,7 @@ IF(OPENSSL_FOUND)
 ENDIF(OPENSSL_FOUND)
 
 ADD_LIBRARY(libdbase STATIC ${libdbase_SRCS})
+SET_PROPERTY(TARGET libdbase PROPERTY POSITION_INDEPENDENT_CODE ON)
 
 # FIXME
 IF(SEMS_WORKAROUND_FOR_OLD_CMAKE_2_4_FOR_STATIC_LIBS)
diff --git a/apps/sbc/CMakeLists.txt b/apps/sbc/CMakeLists.txt
index 3d21b003..b0383095 100644
--- a/apps/sbc/CMakeLists.txt
+++ b/apps/sbc/CMakeLists.txt
@@ -1,5 +1,8 @@
 FILE (GLOB sbc_SRCS "*.cpp")
 
+ADD_SUBDIRECTORY (call_control)
+
+SET(sems_module_name sbc)
 SET(sbc_config_files
 auth_b2b.sbcprofile
 call_timer.sbcprofile
@@ -28,5 +31,4 @@ tools/sems-sbc-teardown-call
 	DESTINATION ${SEMS_EXEC_PREFIX}/sbin
 	)
 
-SET(sems_module_name sbc)
 INCLUDE(${CMAKE_SOURCE_DIR}/cmake/module.rules.txt)
diff --git a/apps/sbc/call_control/CMakeLists.txt b/apps/sbc/call_control/CMakeLists.txt
new file mode 100644
index 00000000..0b292c72
--- /dev/null
+++ b/apps/sbc/call_control/CMakeLists.txt
@@ -0,0 +1,11 @@
+#ADD_SUBDIRECTORY (bl_redis)
+ADD_SUBDIRECTORY (call_timer)
+#ADD_SUBDIRECTORY (ctl)
+#ADD_SUBDIRECTORY (dsm)
+ADD_SUBDIRECTORY (parallel_calls)
+#ADD_SUBDIRECTORY (prepaid)
+#ADD_SUBDIRECTORY (prepaid_xmlrpc)
+#ADD_SUBDIRECTORY (register)
+#ADD_SUBDIRECTORY (rest)
+#ADD_SUBDIRECTORY (syslog_cdr)
+ADD_SUBDIRECTORY (template)
diff --git a/apps/sbc/call_control/call_timer/CMakeLists.txt b/apps/sbc/call_control/call_timer/CMakeLists.txt
new file mode 100644
index 00000000..d7cd3d8c
--- /dev/null
+++ b/apps/sbc/call_control/call_timer/CMakeLists.txt
@@ -0,0 +1,6 @@
+set (cc_call_timer_SRCS
+CallTimer.cpp
+)
+
+SET(sems_sbc_call_control_name cc_call_timer)
+INCLUDE(${CMAKE_SOURCE_DIR}/cmake/sbc.call_control.rules.txt)
diff --git a/apps/sbc/call_control/parallel_calls/CMakeLists.txt b/apps/sbc/call_control/parallel_calls/CMakeLists.txt
new file mode 100644
index 00000000..c57d4c2d
--- /dev/null
+++ b/apps/sbc/call_control/parallel_calls/CMakeLists.txt
@@ -0,0 +1,6 @@
+set (cc_parallel_calls_SRCS
+CCParallelCalls.cpp
+)
+
+SET(sems_sbc_call_control_name cc_parallel_calls)
+INCLUDE(${CMAKE_SOURCE_DIR}/cmake/sbc.call_control.rules.txt)
diff --git a/apps/sbc/call_control/template/CMakeLists.txt b/apps/sbc/call_control/template/CMakeLists.txt
new file mode 100644
index 00000000..a6eb6a9a
--- /dev/null
+++ b/apps/sbc/call_control/template/CMakeLists.txt
@@ -0,0 +1,6 @@
+set (cc_template_SRCS
+CCTemplate.cpp
+)
+
+SET(sems_sbc_call_control_name cc_template)
+INCLUDE(${CMAKE_SOURCE_DIR}/cmake/sbc.call_control.rules.txt)
diff --git a/apps/xmlrpc2di/xmlrpc++/src/CMakeLists.txt b/apps/xmlrpc2di/xmlrpc++/src/CMakeLists.txt
index 5a43e508..99882fdf 100644
--- a/apps/xmlrpc2di/xmlrpc++/src/CMakeLists.txt
+++ b/apps/xmlrpc2di/xmlrpc++/src/CMakeLists.txt
@@ -19,6 +19,7 @@ XmlRpcValue.cpp
 # Solaris: -lsocket -lnsl
 
 ADD_LIBRARY(xmlrpcpp STATIC ${xmlrpcpp_SRCS})
+SET_PROPERTY(TARGET xmlrpcpp PROPERTY POSITION_INDEPENDENT_CODE ON)
 
 # FIXME
 IF(SEMS_WORKAROUND_FOR_OLD_CMAKE_2_4_FOR_STATIC_LIBS)
diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt
index 81609920..fddeff94 100644
--- a/core/CMakeLists.txt
+++ b/core/CMakeLists.txt
@@ -13,7 +13,12 @@ INCLUDE_DIRECTORIES (amci)
 ADD_EXECUTABLE (sems ${sems_SRCS})
 TARGET_LINK_LIBRARIES(sems ${CMAKE_DL_LIBS} stdc++ resolv)
 
-TARGET_LINK_LIBRARIES(sems ${CMAKE_DL_LIBS} event event_pthreads)
+IF(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+	TARGET_LINK_LIBRARIES(sems execinfo)
+ELSE(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+	TARGET_LINK_LIBRARIES(sems resolv)
+ENDIF(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
+TARGET_LINK_LIBRARIES(sems ${CMAKE_DL_LIBS} event event_pthreads -rdynamic)
 
 IF(SPANDSP_FOUND)
 	TARGET_LINK_LIBRARIES(sems ${CMAKE_DL_LIBS} spandsp)
diff --git a/core/plug-in/ilbc/iLBC_rfc3951/CMakeLists.txt b/core/plug-in/ilbc/iLBC_rfc3951/CMakeLists.txt
index d3c79833..616b3314 100644
--- a/core/plug-in/ilbc/iLBC_rfc3951/CMakeLists.txt
+++ b/core/plug-in/ilbc/iLBC_rfc3951/CMakeLists.txt
@@ -25,6 +25,7 @@ syntFilter.c
 )
 
 ADD_LIBRARY(libilbc STATIC ${ilbc_SRCS})
+SET_PROPERTY(TARGET libilbc PROPERTY POSITION_INDEPENDENT_CODE ON)
 
 # FIXME
 IF(SEMS_WORKAROUND_FOR_OLD_CMAKE_2_4_FOR_STATIC_LIBS)