[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
| [mosquitto-dev] Using cmake on linux for 1.4 | 
I've noticed two problems compiling the new 1.4 on linux using cmake. 
Both problems are seen on Slackware64 and Ubuntu 14.04.
1. src/CMakeLists.txt incorrectly (I believe) uses the 
"exported_symbols_list" linker option. Linking fails with that option in 
place. I think this should use "dynamic-list" option instead as shown in 
the attached patch. Linking completes with this patch.
2. CMakeLists.txt contains the directive cmake_policy(SET CMP0042 NEW) 
immediately following cmake_minimum_required(VERSION 2.8). However, 
using cmake-2.8.12 I see the error:
    CMake Error at CMakeLists.txt:12 (cmake_policy):
        Policy "CMP0042" is not known to this version of CMake.
The documentation at 
http://www.cmake.org/cmake/help/v3.0/policy/CMP0042.html indicates that 
it was introduced in cmake-3.0 i.e. not applicable to previous versions.
It can be fixed locally (cmake-2.8.12) by commenting that line out or 
making it conditional, as per second attached patch.
chris
--- src/CMakeLists.txt.orig	2015-02-18 11:44:09.000000000 +1000
+++ src/CMakeLists.txt	2015-02-21 14:24:10.423277309 +1000
@@ -113,7 +113,7 @@
 	if (APPLE)
 		set_target_properties(mosquitto PROPERTIES LINK_FLAGS "-Wl,-exported_symbols_list -Wl,${mosquitto_SOURCE_DIR}/src/linker-macosx.syms")
 	else (APPLE)
-		set_target_properties(mosquitto PROPERTIES LINK_FLAGS "-Wl,-exported_symbols_list -Wl,${mosquitto_SOURCE_DIR}/src/linker.syms")
+		set_target_properties(mosquitto PROPERTIES LINK_FLAGS "-Wl,-dynamic-list -Wl,${mosquitto_SOURCE_DIR}/src/linker.syms")
 	endif (APPLE)
 endif (UNIX)
 
--- CMakeLists.txt.orig	2015-02-18 11:44:09.000000000 +1000
+++ CMakeLists.txt	2015-02-21 15:47:09.171321949 +1000
@@ -9,7 +9,9 @@
 project(mosquitto)
 
 cmake_minimum_required(VERSION 2.8)
-cmake_policy(SET CMP0042 NEW)
+if (POLICY CMP0042)
+	cmake_policy(SET CMP0042 NEW)
+endif (POLICY CMP0042)
 
 set (VERSION 1.4)