summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--CMakeLists.txt67
-rw-r--r--bluetooth/CMakeLists.txt21
-rw-r--r--bluetooth/qtappfw-bt.pc.in12
-rw-r--r--core/CMakeLists.txt28
-rw-r--r--core/callmessage.cpp (renamed from callmessage.cpp)0
-rw-r--r--core/callmessage.h (renamed from callmessage.h)0
-rw-r--r--core/eventmessage.cpp (renamed from eventmessage.cpp)0
-rw-r--r--core/eventmessage.h (renamed from eventmessage.h)0
-rw-r--r--core/message.cpp (renamed from message.cpp)0
-rw-r--r--core/message.h (renamed from message.h)0
-rw-r--r--core/messageengine.cpp (renamed from messageengine.cpp)0
-rw-r--r--core/messageengine.h (renamed from messageengine.h)0
-rw-r--r--core/messageenginefactory.cpp (renamed from messageenginefactory.cpp)0
-rw-r--r--core/messageenginefactory.h (renamed from messageenginefactory.h)0
-rw-r--r--core/messagefactory.cpp (renamed from messagefactory.cpp)0
-rw-r--r--core/messagefactory.h (renamed from messagefactory.h)0
-rw-r--r--core/qtappfw-core.pc.in (renamed from qtappfw.pc.in)8
-rw-r--r--core/responsemessage.cpp (renamed from responsemessage.cpp)0
-rw-r--r--core/responsemessage.h (renamed from responsemessage.h)2
-rw-r--r--hvac/CMakeLists.txt21
-rw-r--r--hvac/qtappfw-hvac.pc.in12
-rw-r--r--map/CMakeLists.txt21
-rw-r--r--map/qtappfw-bt-map.pc.in12
-rw-r--r--mediaplayer/CMakeLists.txt21
-rw-r--r--mediaplayer/qtappfw-mediaplayer.pc.in12
-rw-r--r--navigation/CMakeLists.txt21
-rw-r--r--navigation/qtappfw-navigation.pc.in12
-rw-r--r--network/CMakeLists.txt33
-rw-r--r--network/qtappfw-network.pc.in12
-rw-r--r--pbap/CMakeLists.txt21
-rw-r--r--pbap/qtappfw-bt-pbap.pc.in12
-rw-r--r--radio/CMakeLists.txt21
-rw-r--r--radio/qtappfw-radio.pc.in12
-rw-r--r--signal-composer/CMakeLists.txt21
-rw-r--r--signal-composer/qtappfw-signal-composer.pc.in12
-rw-r--r--telephony/CMakeLists.txt22
-rw-r--r--telephony/qtappfw-phone.pc.in12
-rw-r--r--voice-capabilities/CMakeLists.txt21
-rw-r--r--voice-capabilities/qtappfw-voice-metadata.pc.in12
-rw-r--r--voice/CMakeLists.txt26
-rw-r--r--voice/qtappfw-voice.pc.in12
-rw-r--r--weather/CMakeLists.txt21
-rw-r--r--weather/qtappfw-weather.pc.in12
43 files changed, 464 insertions, 88 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 4a37ee3..28b724c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.7.2)
-project(libqtappfw VERSION 1.0.0 LANGUAGES CXX)
+project(qtappfw VERSION 1.0.0 LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
@@ -11,41 +11,25 @@ find_package(Qt5WebSockets REQUIRED)
include(GNUInstallDirs)
-macro (add_headers)
- file (RELATIVE_PATH _relPath "${PROJECT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
- foreach (_hdr ${ARGN})
- if (_relPath)
- list (APPEND HDRS "${_relPath}/${_hdr}")
- else()
- list (APPEND HDRS "${_hdr}")
- endif()
- endforeach()
- if (_relPath)
- set (HDRS ${HDRS} PARENT_SCOPE)
- endif()
-endmacro()
-
-macro (add_sources)
- file (RELATIVE_PATH _relPath "${PROJECT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}")
- foreach (_src ${ARGN})
- if (_relPath)
- list (APPEND SRCS "${_relPath}/${_src}")
- else()
- list (APPEND SRCS "${_src}")
- endif()
- endforeach()
- if (_relPath)
- set (SRCS ${SRCS} PARENT_SCOPE)
- endif()
-endmacro()
-
set(DEST_DIR "${CMAKE_INSTALL_PREFIX}")
-set(PRIVATE_LIBS "${PRIVATE_LIBS} -lqtappfw")
-CONFIGURE_FILE("qtappfw.pc.in" "qtappfw.pc" @ONLY)
-install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qtappfw.pc
- DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig)
+set(PRIVATE_LIBS "${PRIVATE_LIBS} -lqtappfw-core
+ -lqtappfw-bt
+ -lqtappfw-hvac
+ -lqtappfw-bt-map
+ -lqtappfw-mediaplayer
+ -lqtappfw-navigation
+ -lqtappfw-network
+ -lqtappfw-bt-pbap
+ -lqtappfw-radio
+ -lqtappfw-signal-composer
+ -lqtappfw-phone
+ -lqtappfw-voice
+ -lqtappfw-voice-metadata
+ -lqtappfw-weather")
+
set (SUBDIRS
+ core
docs
bluetooth
hvac
@@ -61,23 +45,6 @@ set (SUBDIRS
voice-capabilities
weather)
-add_headers(message.h messagefactory.h messageengine.h messageenginefactory.h responsemessage.h callmessage.h eventmessage.h)
-add_sources(message.cpp messagefactory.cpp messageengine.cpp messageenginefactory.cpp responsemessage.cpp callmessage.cpp eventmessage.cpp)
-
foreach(subdir ${SUBDIRS})
add_subdirectory(${subdir})
endforeach()
-
-add_library(qtappfw SHARED ${SRCS})
-
-target_link_libraries(qtappfw Qt5::WebSockets)
-set_target_properties(qtappfw PROPERTIES
- VERSION ${PROJECT_VERSION}
- SOVERSION 1
- PUBLIC_HEADER "${HDRS}")
-
-target_include_directories(qtappfw PRIVATE . ${SUBDIRS})
-
-install(TARGETS qtappfw
- LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
- PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/qtappfw)
diff --git a/bluetooth/CMakeLists.txt b/bluetooth/CMakeLists.txt
index 0e05d3b..e514aab 100644
--- a/bluetooth/CMakeLists.txt
+++ b/bluetooth/CMakeLists.txt
@@ -1,2 +1,19 @@
-add_headers(bluetooth.h bluetoothmodel.h)
-add_sources(bluetooth.cpp bluetoothmodel.cpp)
+
+CONFIGURE_FILE("qtappfw-bt.pc.in" "qtappfw-bt.pc" @ONLY)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qtappfw-bt.pc
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig)
+
+add_library(qtappfw-bt SHARED bluetooth.cpp bluetoothmodel.cpp)
+
+target_include_directories(qtappfw-bt PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(qtappfw-bt PRIVATE "${CMAKE_INSTALL_INCLUDEDIR}")
+
+target_link_libraries(qtappfw-bt qtappfw-core)
+set_target_properties(qtappfw-bt PROPERTIES
+ VERSION ${PROJECT_VERSION}
+ SOVERSION 1
+ PUBLIC_HEADER "bluetooth.h;bluetoothmodel.h")
+
+install(TARGETS qtappfw-bt
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/qtappfw-bt)
diff --git a/bluetooth/qtappfw-bt.pc.in b/bluetooth/qtappfw-bt.pc.in
new file mode 100644
index 0000000..d32e8ac
--- /dev/null
+++ b/bluetooth/qtappfw-bt.pc.in
@@ -0,0 +1,12 @@
+prefix=@DEST_DIR@
+exec_prefix=${prefix}
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: qtappfw-bt
+Description: Library wrapping AGL AppFW bluetooth data in Qt objects
+Version: 1.0.0
+
+Requires: Qt5Qml
+Libs: -L${libdir} -lqtappfw-bt
+Cflags: -I${includedir}/qtappfw-bt
diff --git a/core/CMakeLists.txt b/core/CMakeLists.txt
new file mode 100644
index 0000000..3102f3b
--- /dev/null
+++ b/core/CMakeLists.txt
@@ -0,0 +1,28 @@
+
+CONFIGURE_FILE("qtappfw-core.pc.in" "qtappfw-core.pc" @ONLY)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qtappfw-core.pc
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig)
+
+add_library(qtappfw-core SHARED message.cpp
+ messagefactory.cpp
+ messageengine.cpp
+ messageenginefactory.cpp
+ responsemessage.cpp
+ callmessage.cpp
+ eventmessage.cpp)
+
+target_include_directories(qtappfw-core PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(qtappfw-core PUBLIC "${CMAKE_INSTALL_INCLUDEDIR}")
+
+target_link_libraries(qtappfw-core Qt5::WebSockets)
+
+set_target_properties(qtappfw-core PROPERTIES
+ VERSION ${PROJECT_VERSION}
+ SOVERSION 1
+ PUBLIC_HEADER "message.h;messagefactory.h;messageengine.h;messageenginefactory.h;responsemessage.h;callmessage.h;eventmessage.h")
+
+
+install(TARGETS qtappfw-core
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/qtappfw-core)
+
diff --git a/callmessage.cpp b/core/callmessage.cpp
index 1dfa72e..1dfa72e 100644
--- a/callmessage.cpp
+++ b/core/callmessage.cpp
diff --git a/callmessage.h b/core/callmessage.h
index d08024e..d08024e 100644
--- a/callmessage.h
+++ b/core/callmessage.h
diff --git a/eventmessage.cpp b/core/eventmessage.cpp
index 818830f..818830f 100644
--- a/eventmessage.cpp
+++ b/core/eventmessage.cpp
diff --git a/eventmessage.h b/core/eventmessage.h
index 133574c..133574c 100644
--- a/eventmessage.h
+++ b/core/eventmessage.h
diff --git a/message.cpp b/core/message.cpp
index 1865f14..1865f14 100644
--- a/message.cpp
+++ b/core/message.cpp
diff --git a/message.h b/core/message.h
index acbbefd..acbbefd 100644
--- a/message.h
+++ b/core/message.h
diff --git a/messageengine.cpp b/core/messageengine.cpp
index 42fe95b..42fe95b 100644
--- a/messageengine.cpp
+++ b/core/messageengine.cpp
diff --git a/messageengine.h b/core/messageengine.h
index 12aa5e9..12aa5e9 100644
--- a/messageengine.h
+++ b/core/messageengine.h
diff --git a/messageenginefactory.cpp b/core/messageenginefactory.cpp
index 04fb741..04fb741 100644
--- a/messageenginefactory.cpp
+++ b/core/messageenginefactory.cpp
diff --git a/messageenginefactory.h b/core/messageenginefactory.h
index 1ce107b..1ce107b 100644
--- a/messageenginefactory.h
+++ b/core/messageenginefactory.h
diff --git a/messagefactory.cpp b/core/messagefactory.cpp
index 6740e25..6740e25 100644
--- a/messagefactory.cpp
+++ b/core/messagefactory.cpp
diff --git a/messagefactory.h b/core/messagefactory.h
index f826483..f826483 100644
--- a/messagefactory.h
+++ b/core/messagefactory.h
diff --git a/qtappfw.pc.in b/core/qtappfw-core.pc.in
index afbbbbd..bfef2e0 100644
--- a/qtappfw.pc.in
+++ b/core/qtappfw-core.pc.in
@@ -3,10 +3,10 @@ exec_prefix=${prefix}
libdir=${prefix}/lib
includedir=${prefix}/include
-Name: qtappfw
+Name: qtappfw-core
Description: Library wrapping AGL AppFW messages and bindings in Qt objects
Version: 1.0.0
-Requires: Qt5WebSockets Qt5Qml
-Libs: -L${libdir} @PRIVATE_LIBS@
-Cflags: -I${includedir}/qtappfw
+Requires: Qt5WebSockets
+Libs: -L${libdir} -lqtappfw-core
+Cflags: -I${includedir}/qtappfw-core
diff --git a/responsemessage.cpp b/core/responsemessage.cpp
index 9f8e6f2..9f8e6f2 100644
--- a/responsemessage.cpp
+++ b/core/responsemessage.cpp
diff --git a/responsemessage.h b/core/responsemessage.h
index 304a6e3..af6bda5 100644
--- a/responsemessage.h
+++ b/core/responsemessage.h
@@ -22,6 +22,8 @@
class ResponseMessage : public Message
{
+
+
public:
inline QString requestApi() const
{
diff --git a/hvac/CMakeLists.txt b/hvac/CMakeLists.txt
index b5124cb..c0ebf49 100644
--- a/hvac/CMakeLists.txt
+++ b/hvac/CMakeLists.txt
@@ -1,2 +1,19 @@
-add_headers(hvac.h)
-add_sources(hvac.cpp)
+
+CONFIGURE_FILE("qtappfw-hvac.pc.in" "qtappfw-hvac.pc" @ONLY)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qtappfw-hvac.pc
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig)
+
+add_library(qtappfw-hvac SHARED hvac.cpp)
+
+target_include_directories(qtappfw-hvac PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(qtappfw-hvac PUBLIC "${CMAKE_INSTALL_INCLUDEDIR}")
+
+target_link_libraries(qtappfw-hvac qtappfw-core)
+set_target_properties(qtappfw-hvac PROPERTIES
+ VERSION ${PROJECT_VERSION}
+ SOVERSION 1
+ PUBLIC_HEADER hvac.h)
+
+install(TARGETS qtappfw-hvac
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/qtappfw-hvac)
diff --git a/hvac/qtappfw-hvac.pc.in b/hvac/qtappfw-hvac.pc.in
new file mode 100644
index 0000000..60ce631
--- /dev/null
+++ b/hvac/qtappfw-hvac.pc.in
@@ -0,0 +1,12 @@
+prefix=@DEST_DIR@
+exec_prefix=${prefix}
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: qtappfw-hvac
+Description: Library wrapping AGL AppFW hvac data in Qt objects
+Version: 1.0.0
+
+Requires: Qt5Qml
+Libs: -L${libdir} -lqtappfw-hvac
+Cflags: -I${includedir}/qtappfw-hvac
diff --git a/map/CMakeLists.txt b/map/CMakeLists.txt
index 044f81a..8ca3e2c 100644
--- a/map/CMakeLists.txt
+++ b/map/CMakeLists.txt
@@ -1,2 +1,19 @@
-add_headers(map.h)
-add_sources(map.cpp)
+
+CONFIGURE_FILE("qtappfw-bt-map.pc.in" "qtappfw-bt-map.pc" @ONLY)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qtappfw-bt-map.pc
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig)
+
+add_library(qtappfw-bt-map SHARED map.cpp)
+
+target_include_directories(qtappfw-bt-map PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(qtappfw-bt-map PUBLIC "${CMAKE_INSTALL_INCLUDEDIR}")
+
+target_link_libraries(qtappfw-bt-map qtappfw-core)
+set_target_properties(qtappfw-bt-map PROPERTIES
+ VERSION ${PROJECT_VERSION}
+ SOVERSION 1
+ PUBLIC_HEADER map.h)
+
+install(TARGETS qtappfw-bt-map
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/qtappfw-bt-map)
diff --git a/map/qtappfw-bt-map.pc.in b/map/qtappfw-bt-map.pc.in
new file mode 100644
index 0000000..d5e5dac
--- /dev/null
+++ b/map/qtappfw-bt-map.pc.in
@@ -0,0 +1,12 @@
+prefix=@DEST_DIR@
+exec_prefix=${prefix}
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: qtappfw-bt-map
+Description: Library wrapping AGL AppFW bluetooth messaging data in Qt objects
+Version: 1.0.0
+
+Requires: Qt5Qml
+Libs: -L${libdir} -lqtappfw-bt-map
+Cflags: -I${includedir}/qtappfw-bt-map
diff --git a/mediaplayer/CMakeLists.txt b/mediaplayer/CMakeLists.txt
index 75bbca1..e21b590 100644
--- a/mediaplayer/CMakeLists.txt
+++ b/mediaplayer/CMakeLists.txt
@@ -1,2 +1,19 @@
-add_headers(mediaplayer.h)
-add_sources(mediaplayer.cpp)
+
+CONFIGURE_FILE("qtappfw-mediaplayer.pc.in" "qtappfw-mediaplayer.pc" @ONLY)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qtappfw-mediaplayer.pc
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig)
+
+add_library(qtappfw-mediaplayer SHARED mediaplayer.cpp)
+
+target_include_directories(qtappfw-mediaplayer PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(qtappfw-mediaplayer PUBLIC "${CMAKE_INSTALL_INCLUDEDIR}")
+
+target_link_libraries(qtappfw-mediaplayer qtappfw-core)
+set_target_properties(qtappfw-mediaplayer PROPERTIES
+ VERSION ${PROJECT_VERSION}
+ SOVERSION 1
+ PUBLIC_HEADER mediaplayer.h)
+
+install(TARGETS qtappfw-mediaplayer
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/qtappfw-mediaplayer)
diff --git a/mediaplayer/qtappfw-mediaplayer.pc.in b/mediaplayer/qtappfw-mediaplayer.pc.in
new file mode 100644
index 0000000..933e9dc
--- /dev/null
+++ b/mediaplayer/qtappfw-mediaplayer.pc.in
@@ -0,0 +1,12 @@
+prefix=@DEST_DIR@
+exec_prefix=${prefix}
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: qtappfw-mediaplayer
+Description: Library wrapping AGL AppFW mediaplayer data in Qt objects
+Version: 1.0.0
+
+Requires: Qt5Qml
+Libs: -L${libdir} -lqtappfw-mediaplayer
+Cflags: -I${includedir}/qtappfw-mediaplayer
diff --git a/navigation/CMakeLists.txt b/navigation/CMakeLists.txt
index ec76041..bb972e0 100644
--- a/navigation/CMakeLists.txt
+++ b/navigation/CMakeLists.txt
@@ -1,2 +1,19 @@
-add_headers(navigation.h)
-add_sources(navigation.cpp)
+
+CONFIGURE_FILE("qtappfw-navigation.pc.in" "qtappfw-navigation.pc" @ONLY)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qtappfw-navigation.pc
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig)
+
+add_library(qtappfw-navigation SHARED navigation.cpp)
+
+target_include_directories(qtappfw-navigation PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(qtappfw-navigation PUBLIC "${CMAKE_INSTALL_INCLUDEDIR}")
+
+target_link_libraries(qtappfw-navigation qtappfw-core)
+set_target_properties(qtappfw-navigation PROPERTIES
+ VERSION ${PROJECT_VERSION}
+ SOVERSION 1
+ PUBLIC_HEADER navigation.h)
+
+install(TARGETS qtappfw-navigation
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/qtappfw-navigation)
diff --git a/navigation/qtappfw-navigation.pc.in b/navigation/qtappfw-navigation.pc.in
new file mode 100644
index 0000000..8f1fa2c
--- /dev/null
+++ b/navigation/qtappfw-navigation.pc.in
@@ -0,0 +1,12 @@
+prefix=@DEST_DIR@
+exec_prefix=${prefix}
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: qtappfw-navigation
+Description: Library wrapping AGL AppFW navigation data in Qt objects
+Version: 1.0.0
+
+Requires: Qt5Qml
+Libs: -L${libdir} -lqtappfw-navigation
+Cflags: -I${includedir}/qtappfw-navigation
diff --git a/network/CMakeLists.txt b/network/CMakeLists.txt
index fcf21ac..162325c 100644
--- a/network/CMakeLists.txt
+++ b/network/CMakeLists.txt
@@ -1,8 +1,25 @@
-add_headers(network.h
- networkadapter.h wifiadapter.h wiredadapter.h
- wifinetworkmodel.h wirednetworkmodel.h abstractnetworkmodel.h
- connectionprofile.h)
-add_sources(network.cpp
- wifiadapter.cpp wiredadapter.cpp
- wifinetworkmodel.cpp wirednetworkmodel.cpp abstractnetworkmodel.cpp
- connectionprofile.cpp)
+
+CONFIGURE_FILE("qtappfw-network.pc.in" "qtappfw-network.pc" @ONLY)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qtappfw-network.pc
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig)
+
+add_library(qtappfw-network SHARED network.cpp
+ wifiadapter.cpp
+ wiredadapter.cpp
+ wifinetworkmodel.cpp
+ wirednetworkmodel.cpp
+ abstractnetworkmodel.cpp
+ connectionprofile.cpp)
+
+target_include_directories(qtappfw-network PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(qtappfw-network PUBLIC "${CMAKE_INSTALL_INCLUDEDIR}")
+
+target_link_libraries(qtappfw-network qtappfw-core)
+set_target_properties(qtappfw-network PROPERTIES
+ VERSION ${PROJECT_VERSION}
+ SOVERSION 1
+ PUBLIC_HEADER "network.h;networkadapter.h;wifiadapter.h;wiredadapter.h;wifinetworkmodel.h;wirednetworkmodel.h;abstractnetworkmodel.h;connectionprofile.h")
+
+install(TARGETS qtappfw-network
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/qtappfw-network)
diff --git a/network/qtappfw-network.pc.in b/network/qtappfw-network.pc.in
new file mode 100644
index 0000000..50b34a0
--- /dev/null
+++ b/network/qtappfw-network.pc.in
@@ -0,0 +1,12 @@
+prefix=@DEST_DIR@
+exec_prefix=${prefix}
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: qtappfw-network
+Description: Library wrapping AGL AppFW network data in Qt objects
+Version: 1.0.0
+
+Requires: Qt5Qml
+Libs: -L${libdir} -lqtappfw-network
+Cflags: -I${includedir}/qtappfw-network
diff --git a/pbap/CMakeLists.txt b/pbap/CMakeLists.txt
index 441280f..04f9c67 100644
--- a/pbap/CMakeLists.txt
+++ b/pbap/CMakeLists.txt
@@ -1,2 +1,19 @@
-add_headers(pbap.h)
-add_sources(pbap.cpp)
+
+CONFIGURE_FILE("qtappfw-bt-pbap.pc.in" "qtappfw-bt-pbap.pc" @ONLY)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qtappfw-bt-pbap.pc
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig)
+
+add_library(qtappfw-bt-pbap SHARED pbap.cpp)
+
+target_include_directories(qtappfw-bt-pbap PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(qtappfw-bt-pbap PUBLIC "${CMAKE_INSTALL_INCLUDEDIR}")
+
+target_link_libraries(qtappfw-bt-pbap qtappfw-core)
+set_target_properties(qtappfw-bt-pbap PROPERTIES
+ VERSION ${PROJECT_VERSION}
+ SOVERSION 1
+ PUBLIC_HEADER pbap.h)
+
+install(TARGETS qtappfw-bt-pbap
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/qtappfw-bt-pbap)
diff --git a/pbap/qtappfw-bt-pbap.pc.in b/pbap/qtappfw-bt-pbap.pc.in
new file mode 100644
index 0000000..2da9c53
--- /dev/null
+++ b/pbap/qtappfw-bt-pbap.pc.in
@@ -0,0 +1,12 @@
+prefix=@DEST_DIR@
+exec_prefix=${prefix}
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: qtappfw-bt-pbap
+Description: Library wrapping AGL AppFW bluetooth pbap data in Qt objects
+Version: 1.0.0
+
+Requires: Qt5Qml
+Libs: -L${libdir} -lqtappfw-bt-pbap
+Cflags: -I${includedir}/qtappfw-bt-pbap
diff --git a/radio/CMakeLists.txt b/radio/CMakeLists.txt
index a6b8db4..8cce350 100644
--- a/radio/CMakeLists.txt
+++ b/radio/CMakeLists.txt
@@ -1,2 +1,19 @@
-add_headers(radio.h)
-add_sources(radio.cpp)
+
+CONFIGURE_FILE("qtappfw-radio.pc.in" "qtappfw-radio.pc" @ONLY)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qtappfw-radio.pc
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig)
+
+add_library(qtappfw-radio SHARED radio.cpp)
+
+target_include_directories(qtappfw-radio PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(qtappfw-radio PUBLIC "${CMAKE_INSTALL_INCLUDEDIR}")
+
+target_link_libraries(qtappfw-radio qtappfw-core)
+set_target_properties(qtappfw-radio PROPERTIES
+ VERSION ${PROJECT_VERSION}
+ SOVERSION 1
+ PUBLIC_HEADER radio.h)
+
+install(TARGETS qtappfw-radio
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/qtappfw-radio)
diff --git a/radio/qtappfw-radio.pc.in b/radio/qtappfw-radio.pc.in
new file mode 100644
index 0000000..8f42e39
--- /dev/null
+++ b/radio/qtappfw-radio.pc.in
@@ -0,0 +1,12 @@
+prefix=@DEST_DIR@
+exec_prefix=${prefix}
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: qtappfw-radio
+Description: Library wrapping AGL AppFW radio data in Qt objects
+Version: 1.0.0
+
+Requires: Qt5Qml
+Libs: -L${libdir} -lqtappfw-radio
+Cflags: -I${includedir}/qtappfw-radio
diff --git a/signal-composer/CMakeLists.txt b/signal-composer/CMakeLists.txt
index f517d27..e8c51e3 100644
--- a/signal-composer/CMakeLists.txt
+++ b/signal-composer/CMakeLists.txt
@@ -1,2 +1,19 @@
-add_headers(signalcomposer.h)
-add_sources(signalcomposer.cpp)
+
+CONFIGURE_FILE("qtappfw-signal-composer.pc.in" "qtappfw-signal-composer.pc" @ONLY)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qtappfw-signal-composer.pc
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig)
+
+add_library(qtappfw-signal-composer SHARED signalcomposer.cpp)
+
+target_include_directories(qtappfw-signal-composer PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(qtappfw-signal-composer PUBLIC "${CMAKE_INSTALL_INCLUDEDIR}")
+
+target_link_libraries(qtappfw-signal-composer qtappfw-core)
+set_target_properties(qtappfw-signal-composer PROPERTIES
+ VERSION ${PROJECT_VERSION}
+ SOVERSION 1
+ PUBLIC_HEADER signalcomposer.h)
+
+install(TARGETS qtappfw-signal-composer
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/qtappfw-signal-composer)
diff --git a/signal-composer/qtappfw-signal-composer.pc.in b/signal-composer/qtappfw-signal-composer.pc.in
new file mode 100644
index 0000000..f00ba19
--- /dev/null
+++ b/signal-composer/qtappfw-signal-composer.pc.in
@@ -0,0 +1,12 @@
+prefix=@DEST_DIR@
+exec_prefix=${prefix}
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: qtappfw-signal-composer
+Description: Library wrapping AGL AppFW signal composer data in Qt objects
+Version: 1.0.0
+
+Requires: Qt5Qml
+Libs: -L${libdir} -lqtappfw-signal-composer
+Cflags: -I${includedir}/qtappfw-signal-composer
diff --git a/telephony/CMakeLists.txt b/telephony/CMakeLists.txt
index 196ad53..7c4e5b5 100644
--- a/telephony/CMakeLists.txt
+++ b/telephony/CMakeLists.txt
@@ -1,2 +1,20 @@
-add_headers(telephony.h)
-add_sources(telephony.cpp)
+
+CONFIGURE_FILE("qtappfw-phone.pc.in" "qtappfw-phone.pc" @ONLY)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qtappfw-phone.pc
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig)
+
+add_library(qtappfw-phone SHARED telephony.cpp)
+
+target_include_directories(qtappfw-phone PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(qtappfw-phone PUBLIC "${CMAKE_INSTALL_INCLUDEDIR}")
+
+target_link_libraries(qtappfw-phone qtappfw-core)
+set_target_properties(qtappfw-phone PROPERTIES
+ VERSION ${PROJECT_VERSION}
+ SOVERSION 1
+ PUBLIC_HEADER telephony.h)
+
+install(TARGETS qtappfw-phone
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/qtappfw-phone)
+
diff --git a/telephony/qtappfw-phone.pc.in b/telephony/qtappfw-phone.pc.in
new file mode 100644
index 0000000..949542f
--- /dev/null
+++ b/telephony/qtappfw-phone.pc.in
@@ -0,0 +1,12 @@
+prefix=@DEST_DIR@
+exec_prefix=${prefix}
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: qtappfw-phone
+Description: Library wrapping AGL AppFW phone data in Qt objects
+Version: 1.0.0
+
+Requires: Qt5Qml
+Libs: -L${libdir} -lqtappfw-phone
+Cflags: -I${includedir}/qtappfw-phone
diff --git a/voice-capabilities/CMakeLists.txt b/voice-capabilities/CMakeLists.txt
index e3c0de7..1751e71 100644
--- a/voice-capabilities/CMakeLists.txt
+++ b/voice-capabilities/CMakeLists.txt
@@ -1,2 +1,19 @@
-add_headers(guimetadata.h)
-add_sources(guimetadata.cpp)
+
+CONFIGURE_FILE("qtappfw-voice-metadata.pc.in" "qtappfw-voice-metadata.pc" @ONLY)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qtappfw-voice-metadata.pc
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig)
+
+add_library(qtappfw-voice-metadata SHARED guimetadata.cpp)
+
+target_include_directories(qtappfw-voice-metadata PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(qtappfw-voice-metadata PUBLIC "${CMAKE_INSTALL_INCLUDEDIR}")
+
+target_link_libraries(qtappfw-voice-metadata qtappfw-core)
+set_target_properties(qtappfw-voice-metadata PROPERTIES
+ VERSION ${PROJECT_VERSION}
+ SOVERSION 1
+ PUBLIC_HEADER guimetadata.h)
+
+install(TARGETS qtappfw-voice-metadata
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/qtappfw-voice-metadata)
diff --git a/voice-capabilities/qtappfw-voice-metadata.pc.in b/voice-capabilities/qtappfw-voice-metadata.pc.in
new file mode 100644
index 0000000..7f69783
--- /dev/null
+++ b/voice-capabilities/qtappfw-voice-metadata.pc.in
@@ -0,0 +1,12 @@
+prefix=@DEST_DIR@
+exec_prefix=${prefix}
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: qtappfw-voice-metadata
+Description: Library wrapping AGL AppFW voice metadata in Qt objects
+Version: 1.0.0
+
+Requires: Qt5Qml
+Libs: -L${libdir} -lqtappfw-voice-metadata
+Cflags: -I${includedir}/qtappfw-voice-metadata
diff --git a/voice/CMakeLists.txt b/voice/CMakeLists.txt
index 6363c3b..3de0586 100644
--- a/voice/CMakeLists.txt
+++ b/voice/CMakeLists.txt
@@ -1,4 +1,22 @@
-add_headers(voice.h
- voiceagentregistry.h voiceagentprofile.h voiceagentmodel.h)
-add_sources(voice.cpp
- voiceagentregistry.cpp voiceagentprofile.cpp voiceagentmodel.cpp)
+
+CONFIGURE_FILE("qtappfw-voice.pc.in" "qtappfw-voice.pc" @ONLY)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qtappfw-voice.pc
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig)
+
+add_library(qtappfw-voice SHARED voice.cpp
+ voiceagentregistry.cpp
+ voiceagentprofile.cpp
+ voiceagentmodel.cpp)
+
+target_include_directories(qtappfw-voice PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(qtappfw-voice PUBLIC "${CMAKE_INSTALL_INCLUDEDIR}")
+
+target_link_libraries(qtappfw-voice qtappfw-core)
+set_target_properties(qtappfw-voice PROPERTIES
+ VERSION ${PROJECT_VERSION}
+ SOVERSION 1
+ PUBLIC_HEADER "voice.h;voiceagentregistry.h;voiceagentprofile.h;voiceagentmodel.h")
+
+install(TARGETS qtappfw-voice
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/qtappfw-voice)
diff --git a/voice/qtappfw-voice.pc.in b/voice/qtappfw-voice.pc.in
new file mode 100644
index 0000000..ebc5276
--- /dev/null
+++ b/voice/qtappfw-voice.pc.in
@@ -0,0 +1,12 @@
+prefix=@DEST_DIR@
+exec_prefix=${prefix}
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: qtappfw-voice
+Description: Library wrapping AGL AppFW voice data in Qt objects
+Version: 1.0.0
+
+Requires: Qt5Qml
+Libs: -L${libdir} -lqtappfw-voice
+Cflags: -I${includedir}/qtappfw-voice
diff --git a/weather/CMakeLists.txt b/weather/CMakeLists.txt
index bd94755..11d4f91 100644
--- a/weather/CMakeLists.txt
+++ b/weather/CMakeLists.txt
@@ -1,2 +1,19 @@
-add_headers(weather.h)
-add_sources(weather.cpp)
+
+CONFIGURE_FILE("qtappfw-weather.pc.in" "qtappfw-weather.pc" @ONLY)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/qtappfw-weather.pc
+ DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/pkgconfig)
+
+add_library(qtappfw-weather SHARED weather.cpp)
+
+target_include_directories(qtappfw-weather PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}")
+target_include_directories(qtappfw-weather PUBLIC "${CMAKE_INSTALL_INCLUDEDIR}")
+
+target_link_libraries(qtappfw-weather qtappfw-core)
+set_target_properties(qtappfw-weather PROPERTIES
+ VERSION ${PROJECT_VERSION}
+ SOVERSION 1
+ PUBLIC_HEADER weather.h)
+
+install(TARGETS qtappfw-weather
+ LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+ PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/qtappfw-weather)
diff --git a/weather/qtappfw-weather.pc.in b/weather/qtappfw-weather.pc.in
new file mode 100644
index 0000000..1e3e5e1
--- /dev/null
+++ b/weather/qtappfw-weather.pc.in
@@ -0,0 +1,12 @@
+prefix=@DEST_DIR@
+exec_prefix=${prefix}
+libdir=${prefix}/lib
+includedir=${prefix}/include
+
+Name: qtappfw-weather
+Description: Library wrapping AGL AppFW weather data in Qt objects
+Version: 1.0.0
+
+Requires: Qt5Qml
+Libs: -L${libdir} -lqtappfw-weather
+Cflags: -I${includedir}/qtappfw-weather