Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F1497757
pahomqttc.cmake
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Size
3 KB
Referenced Files
None
Subscribers
None
pahomqttc.cmake
View Options
#
# Builds the paho.mqtt.c library
#
# This step is necessary to provide the libraries and
# headers for paho.mqtt.cpp project
#
include
(
ExternalProject
)
set
(
PAHOMQTTC_DIR
${
CMAKE_SOURCE_DIR
}
/modules/paho.mqtt.c
)
set
(
PAHOMQTTC_TARGET_DIR
${
CMAKE_BINARY_DIR
}
/modules/paho.mqtt.c
)
if
(
WIN32
)
set
(
PAHOMQTTC_CLIENT_STATIC_LIB
${
PAHOMQTTC_TARGET_DIR
}
/lib/paho-mqtt3c-static.lib
)
set
(
PAHOMQTTC_ASYNC_STATIC_LIB
${
PAHOMQTTC_TARGET_DIR
}
/lib/paho-mqtt3a-static.lib
)
set
(
PAHOMQTTC_INSTALL_BYPRODUCTS
${
PAHOMQTTC_CLIENT_STATIC_LIB
}
${
PAHOMQTTC_ASYNC_STATIC_LIB
}
)
else
()
# '-static' suffix is removed from library names if not win32.
# That is to be fixed because paho.mqtt.cpp expects the suffix.
set
(
PAHOMQTTC_CLIENT_STATIC_WRONGLIB
${
PAHOMQTTC_TARGET_DIR
}
/lib/libpaho-mqtt3c.a
)
set
(
PAHOMQTTC_ASYNC_STATIC_WRONGLIB
${
PAHOMQTTC_TARGET_DIR
}
/lib/libpaho-mqtt3a.a
)
set
(
PAHOMQTTC_CLIENT_STATIC_LIB
${
PAHOMQTTC_TARGET_DIR
}
/lib/libpaho-mqtt3c-static.a
)
set
(
PAHOMQTTC_ASYNC_STATIC_LIB
${
PAHOMQTTC_TARGET_DIR
}
/lib/libpaho-mqtt3a-static.a
)
set
(
PAHOMQTTC_INSTALL_BYPRODUCTS
${
PAHOMQTTC_CLIENT_STATIC_WRONGLIB
}
${
PAHOMQTTC_ASYNC_STATIC_WRONGLIB
}
)
endif
()
set
(
PAHOMQTTC_BYPRODUCTS
${
PAHOMQTTC_CLIENT_STATIC_LIB
}
${
PAHOMQTTC_ASYNC_STATIC_LIB
}
)
file
(
MAKE_DIRECTORY
${
PAHOMQTTC_TARGET_DIR
}
/include
)
ExternalProject_Add
(
pahomqttc
PREFIX
${
PAHOMQTTC_TARGET_DIR
}
SOURCE_DIR
${
PAHOMQTTC_DIR
}
CMAKE_ARGS
-DCMAKE_C_COMPILER=
${
CMAKE_C_COMPILER
}
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=
${
PAHOMQTTC_TARGET_DIR
}
CMAKE_ARGS
-DPAHO_WITH_SSL=
${
PAHO_BUILD_WITH_SSL
}
CMAKE_ARGS
-DPAHO_BUILD_STATIC=
${
PAHO_BUILD_STATIC
}
CMAKE_ARGS
-DPAHO_ENABLE_TESTING=
${
PAHO_ENABLE_TESTING
}
BUILD_COMMAND
cmake
--build
.
--config
$<
CONFIG
>
INSTALL_COMMAND
cmake
--install
.
--config
$<
CONFIG
>
BYPRODUCTS
${
PAHOMQTTC_INSTALL_BYPRODUCTS
}
)
if
(
NOT
WIN32
)
ExternalProject_Add_Step
(
pahomqttc
libfix
COMMAND
${
CMAKE_COMMAND
}
-E
copy
${
PAHOMQTTC_CLIENT_STATIC_WRONGLIB
}
${
PAHOMQTTC_CLIENT_STATIC_LIB
}
COMMAND
${
CMAKE_COMMAND
}
-E
copy
${
PAHOMQTTC_ASYNC_STATIC_WRONGLIB
}
${
PAHOMQTTC_ASYNC_STATIC_LIB
}
COMMENT
"Fixing paho.mqtt.c static library names"
DEPENDS
${
PAHOMQTTC_INSTALL_BYPRODUCTS
}
BYPRODUCTS
${
PAHOMQTTC_BYPRODUCTS
}
)
endif
()
# The paho.mqtt.cpp project needs to know where the paho.mqtt.c libraries
# and headers are installed, so we provide this information in an additional
# cmake file which is passed to the paho.mqtt.cpp project build
set
(
PAHOMQTTC_INCLUDE_DIR
${
PAHOMQTTC_TARGET_DIR
}
/include
)
set
(
PAHOMQTTC_LIBRARY_DIR
${
PAHOMQTTC_TARGET_DIR
}
/lib
)
configure_file
(
${
CMAKE_SOURCE_DIR
}
/cmake/fix_pahomqttcpp.cmake.in
${
CMAKE_BINARY_DIR
}
/cmake/fix_pahomqttcpp.cmake
@ONLY
)
add_library
(
paho-mqttc3::MQTTClient
STATIC
IMPORTED
GLOBAL
)
set_target_properties
(
paho-mqttc3::MQTTClient
PROPERTIES
IMPORTED_LOCATION
${
PAHOMQTTC_CLIENT_STATIC_LIB
}
INTERFACE_INCLUDE_DIRECTORIES
${
PAHOMQTTC_TARGET_DIR
}
/include
)
add_library
(
paho-mqttc3::MQTTAsync
STATIC
IMPORTED
GLOBAL
)
set_target_properties
(
paho-mqttc3::MQTTAsync
PROPERTIES
IMPORTED_LOCATION
${
PAHOMQTTC_ASYNC_STATIC_LIB
}
INTERFACE_INCLUDE_DIRECTORIES
${
PAHOMQTTC_TARGET_DIR
}
/include
)
if
(
NOT
WIN32
)
# pthread is used and the link dependency needs to be explicitly specified here
set_target_properties
(
paho-mqttc3::MQTTClient
paho-mqttc3::MQTTAsync
PROPERTIES
INTERFACE_LINK_LIBRARIES
pthread
)
else
()
# WIN32
# winsocks are used and the link dependency needs to be explicitly specified here
set_target_properties
(
paho-mqttc3::MQTTClient
paho-mqttc3::MQTTAsync
PROPERTIES
INTERFACE_LINK_LIBRARIES
ws2_32
)
endif
()
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sun, Mar 1, 9:39 PM (1 d, 22 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
277044
Default Alt Text
pahomqttc.cmake (3 KB)
Attached To
Mode
R20 SoC_Rosa_repo
Attached
Detach File
Event Timeline
Log In to Comment