summaryrefslogtreecommitdiff
path: root/src/components/policy/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'src/components/policy/CMakeLists.txt')
-rw-r--r--src/components/policy/CMakeLists.txt84
1 files changed, 78 insertions, 6 deletions
diff --git a/src/components/policy/CMakeLists.txt b/src/components/policy/CMakeLists.txt
index f32ef344d2..3a2b0829dc 100644
--- a/src/components/policy/CMakeLists.txt
+++ b/src/components/policy/CMakeLists.txt
@@ -28,11 +28,83 @@
# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
-# --- Policy
-add_subdirectory(./src/policy)
-#======================= Unit-Test section =======================
-if(BUILD_TESTS)
- add_subdirectory(test)
+set(target Policy)
+set(install_destination bin)
+set(copy_destination ${CMAKE_BINARY_DIR}/src/appMain)
+set(library_name ${CMAKE_SHARED_LIBRARY_PREFIX}${target}${CMAKE_SHARED_LIBRARY_SUFFIX})
+
+set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
+
+include_directories (
+ ${COMPONENTS_DIR}/policy/include
+ ${COMPONENTS_DIR}/rpc_base/include
+ ${JSONCPP_INCLUDE_DIRECTORY}
+ ${COMPONENTS_DIR}/utils/include/
+ ${COMPONENTS_DIR}/config_profile/include
+ ${LOG4CXX_INCLUDE_DIRECTORY}
+)
+
+set(SOURCES
+ ${COMPONENTS_DIR}/policy/src/policy_manager_impl.cc
+ ${COMPONENTS_DIR}/policy/src/policy_helper.cc
+ ${COMPONENTS_DIR}/policy/src/policy_table.cc
+ ${COMPONENTS_DIR}/policy/src/sql_pt_queries.cc
+ ${COMPONENTS_DIR}/policy/src/sql_pt_representation.cc
+ ${COMPONENTS_DIR}/policy/src/update_status_manager.cc
+ ${COMPONENTS_DIR}/policy/src/cache_manager.cc
+ ${COMPONENTS_DIR}/rpc_base/src/rpc_base/rpc_base.cc
+)
+
+# --- Table struct section
+set(policy_struct_target policy_struct)
+set(POLICY_TABLE_SOURCES
+ ${COMPONENTS_DIR}/policy/src/policy_table/enums.cc
+ ${COMPONENTS_DIR}/policy/src/policy_table/types.cc
+ ${COMPONENTS_DIR}/policy/src/policy_table/validation.cc
+)
+
+add_library(${policy_struct_target} ${POLICY_TABLE_SOURCES})
+target_link_libraries(${policy_struct_target} Utils)
+# --- end of Table struct section
+
+# --- Usage statistics section
+set(USAGE_STATISTICS_SOURCES
+ ${COMPONENTS_DIR}/policy/src/usage_statistics/counter.cc
+)
+add_library(UsageStatistics ${USAGE_STATISTICS_SOURCES})
+# --- end of Usage statistics section
+
+set(LIBRARIES ConfigProfile policy_struct dbms jsoncpp Utils)
+if (CMAKE_SYSTEM_NAME STREQUAL "QNX")
+ # --- QDB Wrapper
+ include_directories (${COMPONENTS_DIR}/utils/include/utils)
+else ()
+ # --- SQLite Wrapper
+ include_directories (${COMPONENTS_DIR}/utils/include/utils)
+ list(APPEND LIBRARIES sqlite3)
+endif ()
+
+add_library(${target} SHARED ${SOURCES})
+target_link_libraries(${target} ${LIBRARIES} )
+
+if(ENABLE_LOG)
+ target_link_libraries(${target} log4cxx -L${LOG4CXX_LIBS_DIRECTORY})
endif()
-#=================================================================
+add_custom_target(copy_library_${target} ALL
+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
+ ${CMAKE_CURRENT_BINARY_DIR}/${library_name}
+ ${copy_destination}
+ DEPENDS ${target}
+ COMMENT "Copying library ${library_name}")
+
+install(TARGETS ${target}
+ DESTINATION ${install_destination}
+ PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
+ GROUP_READ GROUP_EXECUTE
+ WORLD_READ WORLD_EXECUTE
+)
+
+if(BUILD_TESTS)
+ add_subdirectory(test)
+endif() # BUILD_TESTS