|
@@ -15,7 +15,20 @@ set(LIB_DIR "${CMAKE_INSTALL_FULL_LIBDIR}/${MAIN_NAME}")
|
|
|
set(CFG_DIR "${CMAKE_INSTALL_FULL_SYSCONFDIR}/${MAIN_NAME}")
|
|
|
set(SHARE_DIR "${CMAKE_INSTALL_FULL_DATADIR}/${MAIN_NAME}")
|
|
|
|
|
|
-# Install kamctl
|
|
|
+set(KAMCTL_BASE_FILES
|
|
|
+ kamctl.base
|
|
|
+ kamctl.ctlbase
|
|
|
+ kamctl.db_berkeley
|
|
|
+ kamctl.dbtext
|
|
|
+ kamctl.mysql
|
|
|
+ kamctl.oracle
|
|
|
+ kamctl.pgsql
|
|
|
+ kamctl.rpcfifo
|
|
|
+ kamctl.ser
|
|
|
+ kamctl.sqlbase
|
|
|
+ kamctl.sqlite)
|
|
|
+
|
|
|
+# Install kamctl and it's database files
|
|
|
add_custom_command(
|
|
|
OUTPUT "${KAMCTL_TMP_DIR}/kamctl"
|
|
|
COMMAND
|
|
@@ -23,93 +36,43 @@ add_custom_command(
|
|
|
"s#/usr/local/lib/kamailio#${LIB_DIR}#g" -e
|
|
|
"s#/usr/local/etc/kamailio#${CFG_DIR}#g" <
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/kamctl > ${KAMCTL_TMP_DIR}/kamctl
|
|
|
- COMMENT "Processed kamctl with sed"
|
|
|
-)
|
|
|
+ COMMENT "Processed kamctl with sed")
|
|
|
install(
|
|
|
PROGRAMS ${KAMCTL_TMP_DIR}/kamctl
|
|
|
DESTINATION ${CMAKE_INSTALL_SBINDIR}
|
|
|
- COMPONENT kamailio-utils-bin
|
|
|
-)
|
|
|
-
|
|
|
-# Install kamctl.base
|
|
|
-add_custom_command(
|
|
|
- OUTPUT "${KAMCTL_TMP_DIR}/kamctl.base"
|
|
|
- COMMAND
|
|
|
- sed -e "s#/usr/local/sbin#${BIN_DIR}#g" <
|
|
|
- ${CMAKE_CURRENT_SOURCE_DIR}/kamctl.base > ${KAMCTL_TMP_DIR}/kamctl.base
|
|
|
- COMMENT "Processed kamctl.base with sed"
|
|
|
-)
|
|
|
-install(
|
|
|
- PROGRAMS ${KAMCTL_TMP_DIR}/kamctl.base
|
|
|
- DESTINATION ${CMAKE_INSTALL_LIBDIR}/${MAIN_NAME}/kamctl
|
|
|
- COMPONENT kamailio-utils-bin
|
|
|
-)
|
|
|
-
|
|
|
-# Install kamctl.ctlbase
|
|
|
-add_custom_command(
|
|
|
- OUTPUT "${KAMCTL_TMP_DIR}/kamctl.ctlbase"
|
|
|
- COMMAND
|
|
|
- sed -e "s#/usr/local/sbin#${BIN_DIR}#g" <
|
|
|
- ${CMAKE_CURRENT_SOURCE_DIR}/kamctl.ctlbase >
|
|
|
- ${KAMCTL_TMP_DIR}/kamctl.ctlbase
|
|
|
- COMMENT "Processed kamctl.ctlbase with sed"
|
|
|
-)
|
|
|
-install(
|
|
|
- PROGRAMS ${KAMCTL_TMP_DIR}/kamctl.ctlbase
|
|
|
- DESTINATION ${CMAKE_INSTALL_LIBDIR}/${MAIN_NAME}/kamctl
|
|
|
- COMPONENT kamailio-utils-bin
|
|
|
-)
|
|
|
-
|
|
|
-# Install kamctl.rpcfifo
|
|
|
-add_custom_command(
|
|
|
- OUTPUT "${KAMCTL_TMP_DIR}/kamctl.rpcfifo"
|
|
|
- COMMAND
|
|
|
- sed -e "s#/usr/local/sbin#${BIN_DIR}#g" <
|
|
|
- ${CMAKE_CURRENT_SOURCE_DIR}/kamctl.rpcfifo >
|
|
|
- ${KAMCTL_TMP_DIR}/kamctl.rpcfifo
|
|
|
- COMMENT "Processed kamctl.rpcfifo with sed"
|
|
|
-)
|
|
|
-install(
|
|
|
- PROGRAMS ${KAMCTL_TMP_DIR}/kamctl.rpcfifo
|
|
|
- DESTINATION ${CMAKE_INSTALL_LIBDIR}/${MAIN_NAME}/kamctl
|
|
|
- COMPONENT kamailio-utils-bin
|
|
|
-)
|
|
|
-
|
|
|
-# Install kamctl.ser
|
|
|
-add_custom_command(
|
|
|
- OUTPUT "${KAMCTL_TMP_DIR}/kamctl.ser"
|
|
|
- COMMAND sed -e "s#/usr/local/sbin#${BIN_DIR}#g" <
|
|
|
- ${CMAKE_CURRENT_SOURCE_DIR}/kamctl.ser > ${KAMCTL_TMP_DIR}/kamctl.ser
|
|
|
- COMMENT "Processed kamctl.ser with sed"
|
|
|
-)
|
|
|
-install(
|
|
|
- PROGRAMS ${KAMCTL_TMP_DIR}/kamctl.ser
|
|
|
- DESTINATION ${CMAKE_INSTALL_LIBDIR}/${MAIN_NAME}/kamctl
|
|
|
- COMPONENT kamailio-utils-bin
|
|
|
-)
|
|
|
-
|
|
|
-# Install kamctl.sqlbase
|
|
|
-add_custom_command(
|
|
|
- OUTPUT "${KAMCTL_TMP_DIR}/kamctl.sqlbase"
|
|
|
- COMMAND
|
|
|
- sed -e "s#/usr/local/sbin#${BIN_DIR}#g" <
|
|
|
- ${CMAKE_CURRENT_SOURCE_DIR}/kamctl.sqlbase >
|
|
|
- ${KAMCTL_TMP_DIR}/kamctl.sqlbase
|
|
|
- COMMENT "Processed kamctl.sqlbase with sed"
|
|
|
-)
|
|
|
-install(
|
|
|
- PROGRAMS ${KAMCTL_TMP_DIR}/kamctl.sqlbase
|
|
|
- DESTINATION ${CMAKE_INSTALL_LIBDIR}/${MAIN_NAME}/kamctl
|
|
|
- COMPONENT kamailio-utils-bin
|
|
|
-)
|
|
|
+ COMPONENT kamailio-utils-bin)
|
|
|
+
|
|
|
+# Create the depependencies list for the target kamctl
|
|
|
+set(KAMCTL_DEPENDENCIES "${KAMCTL_TMP_DIR}/kamctl")
|
|
|
+
|
|
|
+# Install kamctl.base and the rest
|
|
|
+foreach(FILE ${KAMCTL_BASE_FILES})
|
|
|
+ # Append to the depependencies list for the target kamctl
|
|
|
+ list(APPEND KAMCTL_DEPENDENCIES "${KAMCTL_TMP_DIR}/${FILE}")
|
|
|
+ add_custom_command(
|
|
|
+ OUTPUT "${KAMCTL_TMP_DIR}/${FILE}"
|
|
|
+ COMMAND sed -e "s#/usr/local/sbin#${BIN_DIR}#g" <
|
|
|
+ ${CMAKE_CURRENT_SOURCE_DIR}/${FILE} > ${KAMCTL_TMP_DIR}/${FILE}
|
|
|
+ COMMENT "Processed ${FILE} with sed")
|
|
|
+ install(
|
|
|
+ PROGRAMS ${KAMCTL_TMP_DIR}/${FILE}
|
|
|
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/${MAIN_NAME}/kamctl
|
|
|
+ COMPONENT kamailio-utils-bin)
|
|
|
+endforeach()
|
|
|
|
|
|
# Kamctl target to depend on all kamctl files
|
|
|
-add_custom_target(
|
|
|
- kamctl ALL
|
|
|
- DEPENDS "${KAMCTL_TMP_DIR}/kamctl" "${KAMCTL_TMP_DIR}/kamctl.base"
|
|
|
- "${KAMCTL_TMP_DIR}/kamctl.ctlbase" "${KAMCTL_TMP_DIR}/kamctl.rpcfifo"
|
|
|
- "${KAMCTL_TMP_DIR}/kamctl.ser" "${KAMCTL_TMP_DIR}/kamctl.sqlbase"
|
|
|
-)
|
|
|
+add_custom_target(kamctl ALL DEPENDS ${KAMCTL_DEPENDENCIES})
|
|
|
+
|
|
|
+# Setup and install kamdbctl stuff
|
|
|
+set(KAMDB_BASE_FILES
|
|
|
+ kamdbctl.base
|
|
|
+ kamdbctl.db_berkeley
|
|
|
+ kamdbctl.dbtext
|
|
|
+ kamdbctl.mysql
|
|
|
+ kamdbctl.oracle
|
|
|
+ kamdbctl.pgsql
|
|
|
+ kamdbctl.sqlite
|
|
|
+ kamdbfunc.oracle)
|
|
|
|
|
|
# Install kamdbctl
|
|
|
add_custom_command(
|
|
@@ -119,33 +82,32 @@ add_custom_command(
|
|
|
"s#/usr/local/lib/kamailio#${LIB_DIR}#g" -e
|
|
|
"s#/usr/local/etc/kamailio#${CFG_DIR}#g" <
|
|
|
${CMAKE_CURRENT_SOURCE_DIR}/kamdbctl > ${KAMCTL_TMP_DIR}/kamdbctl
|
|
|
- COMMENT "Processed kamdbctl with sed"
|
|
|
-)
|
|
|
+ COMMENT "Processed kamdbctl with sed")
|
|
|
install(
|
|
|
PROGRAMS ${KAMCTL_TMP_DIR}/kamdbctl
|
|
|
DESTINATION ${CMAKE_INSTALL_SBINDIR}
|
|
|
- COMPONENT kamailio-utils-bin
|
|
|
-)
|
|
|
-# Install db setup base script
|
|
|
-add_custom_command(
|
|
|
- OUTPUT "${KAMCTL_TMP_DIR}/kamdbctl.base"
|
|
|
- COMMAND
|
|
|
- sed -e "s#/usr/local/sbin#${BIN_DIR}#g" -e
|
|
|
- "s#/usr/local/etc/kamailio#${CFG_DIR}#g" -e
|
|
|
- "s#/usr/local/share/kamailio#${SHARE_DIR}#g" <
|
|
|
- ${CMAKE_CURRENT_SOURCE_DIR}/kamdbctl.base > ${KAMCTL_TMP_DIR}/kamdbctl.base
|
|
|
- COMMENT "Processed kamdbctl.base"
|
|
|
-)
|
|
|
-install(
|
|
|
- PROGRAMS ${KAMCTL_TMP_DIR}/kamdbctl.base
|
|
|
- DESTINATION ${CMAKE_INSTALL_LIBDIR}/${MAIN_NAME}/kamctl
|
|
|
- COMPONENT kamailio-utils-bin
|
|
|
-)
|
|
|
-
|
|
|
-add_custom_target(
|
|
|
- kamdbctl ALL DEPENDS "${KAMCTL_TMP_DIR}/kamdbctl"
|
|
|
- "${KAMCTL_TMP_DIR}/kamdbctl.base"
|
|
|
-)
|
|
|
+ COMPONENT kamailio-utils-bin)
|
|
|
+
|
|
|
+set(KAMDB_DEPENDENCIES "${KAMCTL_TMP_DIR}/kamdbctl")
|
|
|
+
|
|
|
+foreach(FILE ${KAMDB_BASE_FILES})
|
|
|
+ list(APPEND KAMDB_DEPENDENCIES "${KAMCTL_TMP_DIR}/${FILE}")
|
|
|
+ # Install db setup base script
|
|
|
+ add_custom_command(
|
|
|
+ OUTPUT "${KAMCTL_TMP_DIR}/${FILE}"
|
|
|
+ COMMAND
|
|
|
+ sed -e "s#/usr/local/sbin#${BIN_DIR}#g" -e
|
|
|
+ "s#/usr/local/etc/kamailio#${CFG_DIR}#g" -e
|
|
|
+ "s#/usr/local/share/kamailio#${SHARE_DIR}#g" <
|
|
|
+ ${CMAKE_CURRENT_SOURCE_DIR}/${FILE} > ${KAMCTL_TMP_DIR}/${FILE}
|
|
|
+ COMMENT "Processed ${FILE}")
|
|
|
+ install(
|
|
|
+ PROGRAMS ${KAMCTL_TMP_DIR}/${FILE}
|
|
|
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/${MAIN_NAME}/kamctl
|
|
|
+ COMPONENT kamailio-utils-bin)
|
|
|
+endforeach()
|
|
|
+
|
|
|
+add_custom_target(kamdbctl ALL DEPENDS ${KAMDB_DEPENDENCIES})
|
|
|
|
|
|
# Install the configuration file (kamctlrc) using a CODE block to check
|
|
|
# existence at install time instead of configure time
|
|
@@ -164,39 +126,33 @@ install(
|
|
|
PERMISSIONS OWNER_READ OWNER_WRITE GROUP_READ WORLD_READ)
|
|
|
endif()
|
|
|
"
|
|
|
- COMPONENT kamailio-utils-cfg
|
|
|
-)
|
|
|
+ COMPONENT kamailio-utils-cfg)
|
|
|
|
|
|
# Custom target for installing the kamailio-cfg component
|
|
|
add_custom_target(
|
|
|
install-kamailio-utils-cfg
|
|
|
COMMAND ${CMAKE_COMMAND} --install . --component kamailio-utils-cfg
|
|
|
- COMMENT "Installing kamailio-utils-cfg component"
|
|
|
-)
|
|
|
+ COMMENT "Installing kamailio-utils-cfg component")
|
|
|
|
|
|
# Custom target for installing the kamailio-utils-bin component
|
|
|
add_custom_target(
|
|
|
install-kamailio-utils-bin
|
|
|
COMMAND ${CMAKE_COMMAND} --install . --component kamailio-utils-bin
|
|
|
COMMENT "Installing kamailio-utils-bin component"
|
|
|
- DEPENDS kamctl kamdbctl
|
|
|
-)
|
|
|
+ DEPENDS kamctl kamdbctl)
|
|
|
|
|
|
# Custom target for installing the kamailio-utils component
|
|
|
add_custom_target(
|
|
|
install-kamailio-utils # COMMENT "Installing kamailio-utils-cfg and
|
|
|
# kamailio-utils-bin components"
|
|
|
- DEPENDS install-kamailio-utils-cfg install-kamailio-utils-bin
|
|
|
-)
|
|
|
+ DEPENDS install-kamailio-utils-cfg install-kamailio-utils-bin)
|
|
|
|
|
|
# ----------
|
|
|
-# dbschema target:
|
|
|
-# Old Makefiles: make dbschema declared in src/ Makefile
|
|
|
-# This was using the makefile found in src/lib/srdb1/schema folder.
|
|
|
+# dbschema target: Old Makefiles: make dbschema declared in src/ Makefile This
|
|
|
+# was using the makefile found in src/lib/srdb1/schema folder.
|
|
|
#
|
|
|
-# TODO: Revise where we want the target declared.
|
|
|
-# New CMakelists.txt
|
|
|
-# Declare the target in srdb1 CMakeLists.txt file.
|
|
|
+# TODO: Revise where we want the target declared. New CMakelists.txt Declare the
|
|
|
+# target in srdb1 CMakeLists.txt file.
|
|
|
|
|
|
find_program(XSLTPROC_EXECUTABLE xsltproc QUIET)
|
|
|
|
|
@@ -204,8 +160,7 @@ if(NOT XSLTPROC_EXECUTABLE)
|
|
|
message(STATUS "xsltproc is not found. Skip dbschema target.")
|
|
|
else()
|
|
|
option(XSLT_VALIDATE, "Enable schema validation during XSL transformations"
|
|
|
- ON
|
|
|
- )
|
|
|
+ ON)
|
|
|
option(XSLT_VERBOSE, "Enable verbose output for XSL transformations" OFF)
|
|
|
|
|
|
set(XSLTPROC_FLAGS --xinclude)
|
|
@@ -232,15 +187,17 @@ else()
|
|
|
list(APPEND EXTRACTED_TABLES "${TABLE_NAME}")
|
|
|
endforeach()
|
|
|
# Output the extracted table names
|
|
|
- message(STATUS "Extracted Tables: ${EXTRACTED_TABLES}")
|
|
|
+ if(VERBOSE)
|
|
|
+ message(
|
|
|
+ STATUS "Extracted Tables for DB schema generation: ${EXTRACTED_TABLES}")
|
|
|
+ endif()
|
|
|
|
|
|
- # Function to add a target for each database type prefix with dbschema
|
|
|
- # ie db_name = redis -> target = dbschema_redis
|
|
|
+ # Function to add a target for each database type prefix with dbschema ie
|
|
|
+ # db_name = redis -> target = dbschema_redis
|
|
|
function(add_db_target db_name xsl_file)
|
|
|
# Change name for the folder
|
|
|
if(db_name STREQUAL "pi_framework_table" OR db_name STREQUAL
|
|
|
- "pi_framework_mod"
|
|
|
- )
|
|
|
+ "pi_framework_mod")
|
|
|
set(db_name_folder xhttpi_pi)
|
|
|
else()
|
|
|
set(db_name_folder ${db_name})
|
|
@@ -249,8 +206,7 @@ else()
|
|
|
add_custom_target(
|
|
|
dbschema_${db_name}
|
|
|
COMMAND ${CMAKE_COMMAND} -E make_directory "${db_name_folder}"
|
|
|
- WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
|
|
|
- )
|
|
|
+ WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
|
|
|
|
|
# Loop through each table and add a command for xsltproc
|
|
|
foreach(TABLE ${EXTRACTED_TABLES})
|
|
@@ -258,8 +214,7 @@ else()
|
|
|
if(db_name STREQUAL "db_berkeley"
|
|
|
OR db_name STREQUAL "db_redis"
|
|
|
OR db_name STREQUAL "dbtext"
|
|
|
- OR db_name STREQUAL "mongodb"
|
|
|
- )
|
|
|
+ OR db_name STREQUAL "mongodb")
|
|
|
set(PREFIX '')
|
|
|
else()
|
|
|
set(PREFIX "${TABLE}-")
|
|
@@ -274,19 +229,17 @@ else()
|
|
|
--stringparam prefix ${PREFIX} --stringparam db ${db_name} ${xsl_file}
|
|
|
"kamailio-${TABLE}.xml"
|
|
|
WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}/src/lib/srdb1/schema"
|
|
|
- COMMENT "Processing ${TABLE} for ${db_name}"
|
|
|
- )
|
|
|
+ COMMENT "Processing ${TABLE} for ${db_name}")
|
|
|
endforeach()
|
|
|
|
|
|
add_custom_target(
|
|
|
dbschema_${db_name}_clean
|
|
|
COMMAND ${CMAKE_COMMAND} -E remove_directory
|
|
|
- "${CMAKE_CURRENT_BINARY_DIR}/${db_name_folder}"
|
|
|
- )
|
|
|
+ "${CMAKE_CURRENT_BINARY_DIR}/${db_name_folder}")
|
|
|
endfunction()
|
|
|
|
|
|
- # Add targets for each database type
|
|
|
- # Pi framework targets should combined into one
|
|
|
+ # Add targets for each database type Pi framework targets should combined into
|
|
|
+ # one
|
|
|
add_db_target(pi_framework_table "${STYLESHEETS}/pi_framework_table.xsl")
|
|
|
add_db_target(pi_framework_mod "${STYLESHEETS}/pi_framework_mod.xsl")
|
|
|
add_db_target(mysql "${STYLESHEETS}/mysql.xsl")
|
|
@@ -309,8 +262,7 @@ else()
|
|
|
dbschema_mongodb
|
|
|
dbschema_db_redis
|
|
|
dbschema_pi_framework_mod
|
|
|
- dbschema_pi_framework_table
|
|
|
- )
|
|
|
+ dbschema_pi_framework_table)
|
|
|
|
|
|
add_custom_target(
|
|
|
dbschema_clean
|
|
@@ -323,6 +275,5 @@ else()
|
|
|
dbschema_mongodb_clean
|
|
|
dbschema_db_redis_clean
|
|
|
dbschema_pi_framework_mod_clean
|
|
|
- dbschema_pi_framework_table_clean
|
|
|
- )
|
|
|
+ dbschema_pi_framework_table_clean)
|
|
|
endif()
|