Adds q2 repos to migrate

This commit is contained in:
torsten committed 2026-07-14 12:07:36 +02:00
1 parent ad1f62c4ee
commit 17f1c61c9e
991 files changed
+178451

No files matched your search

+22
View File
@@ -0,0 +1,22 @@
FIND_PROGRAM(DOXYGEN_EXECUTABLE doxygen)
MACRO(ADD_DOXYGEN_TARGET target input output infile outdir)
IF(DOXYGEN_EXECUTABLE-NOTFOUND)
MESSAGE(STATUS "Doxygen executable not found - can't create doxygen documentation")
ELSE(DOXYGEN_EXECUTABLE-NOTFOUND)
CONFIGURE_FILE(${input} ${output})
ADD_CUSTOM_TARGET(doxygen_${target} doxygen ${output}
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${infile} ${outdir}
)
ENDIF(DOXYGEN_EXECUTABLE-NOTFOUND)
ENDMACRO(ADD_DOXYGEN_TARGET target)
+126
View File
@@ -0,0 +1,126 @@
IF(ARCGIS_INCLUDE_DIR AND ARCGIS_LIBRARY)
SET(ARCGIS_FOUND TRUE)
ELSE()
INCLUDE(FindLibraryWithDebug)
INCLUDE(FindPackageHandleStandardArgs)
SET(QT_MIN_VERSION 5.4.0)
FIND_PACKAGE(Qt5 COMPONENTS Core Gui Location Network Sensors REQUIRED)
SET(_arcgis_include_hint "/usr/include")
SET(_arcgis_library_hint "/usr/lib64")
SET(_arcgis_lib_dir $ENV{ARCGIS_LIB_DIR})
SET(_arcgis_inc_dir $ENV{ARCGIS_INC_DIR})
IF (NOT ${_arcgis_lib_dir} STREQUAL "")
SET(_arcgis_library_hint "${_arcgis_lib_dir}")
ENDIF()
IF (NOT ${_arcgis_inc_dir} STREQUAL "")
SET(_arcgis_include_hint "${_arcgis_inc_dir}")
ENDIF()
IF(WIN32)
GET_FILENAME_COMPONENT(_arcgis_root_path "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Wow6432Node\\ESRI\\ArcGISRuntimeQt100.0.0;InstallDir]" ABSOLUTE)
IF(_arcgis_root_path)
SET(_arcgis_include_hint "${_arcgis_root_path}/sdk/windows/include/")
SET(_arcgis_library_hint "${_arcgis_root_path}/sdk/windows/x86/lib/")
ELSE()
SET(_root "$ENV{KDEROOT}")
FILE(TO_CMAKE_PATH "${_root}" _root)
IF(NOT EXISTS "${_root}" OR NOT IS_DIRECTORY "${_root}")
SET(_root $ENV{WORKSPACE})
FILE(TO_CMAKE_PATH "${_root}" _root)
ENDIF()
IF(NOT EXISTS "${_root}" OR NOT IS_DIRECTORY "${_root}")
SET(_root ${EXTERNAL_LIBRARY_DIR})
FILE(TO_CMAKE_PATH "${_root}" _root)
ENDIF()
SET(_arcgis_include_hint "${_root}/include/")
SET(_arcgis_library_hint "${_root}/lib/")
ENDIF()
ENDIF()
FIND_PATH(ARCGIS_INCLUDE_DIR arcgis/ArcGISQt_global.h HINTS ${_arcgis_include_hint})
FIND_LIBRARY_WITH_DEBUG(ARCGIS_LIBRARY WIN32_DEBUG_POSTFIX d NAMES EsriRuntimeQt HINTS ${_arcgis_library_hint})
FIND_LIBRARY_WITH_DEBUG(ARCGIS_COMMON_LIBRARY WIN32_DEBUG_POSTFIX d NAMES EsriCommonQt HINTS ${_arcgis_library_hint})
IF (UNIX)
FIND_LIBRARY_WITH_DEBUG(ARCGIS_CPP_LIBRARY WIN32_DEBUG_POSTFIX d NAMES runtimecore HINTS ${_arcgis_library_hint})
ENDIF()
FIND_PACKAGE_HANDLE_STANDARD_ARGS(ArcGIS DEFAULT_MSG ARCGIS_LIBRARY ARCGIS_INCLUDE_DIR)
MARK_AS_ADVANCED(ARCGIS_INCLUDE_DIR ARCGIS_LIBRARY)
ENDIF()
IF(NOT TARGET ArcGIS::ArcGIS)
ADD_LIBRARY(ArcGIS::ArcGIS UNKNOWN IMPORTED)
SET_PROPERTY(TARGET ArcGIS::ArcGIS PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${ARCGIS_INCLUDE_DIR}")
SET_PROPERTY(TARGET ArcGIS::ArcGIS PROPERTY INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${ARCGIS_INCLUDE_DIR}")
IF(ARCGIS_LIBRARY_RELEASE)
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
SET_PROPERTY(TARGET ArcGIS::ArcGIS PROPERTY IMPORTED_LOCATION_RELEASE "${ARCGIS_LIBRARY_RELEASE}")
ENDIF()
IF(ARCGIS_LIBRARY_DEBUG)
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
SET_PROPERTY(TARGET ArcGIS::ArcGIS PROPERTY IMPORTED_LOCATION_DEBUG "${ARCGIS_LIBRARY_DEBUG}")
ENDIF()
IF(NOT ARCGIS_LIBRARY_RELEASE AND NOT ARCGIS_LIBRARY_DEBUG)
SET_PROPERTY(TARGET ArcGIS::ArcGIS PROPERTY IMPORTED_LOCATION "${ARCGIS_LIBRARY}")
ENDIF()
SET_PROPERTY(TARGET ArcGIS::ArcGIS PROPERTY INTERFACE_INCLUDE_DIRECTORIES
$<TARGET_PROPERTY:Qt5::Core,INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:Qt5::Location,INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:Qt5::Network,INTERFACE_INCLUDE_DIRECTORIES>
$<TARGET_PROPERTY:Qt5::Sensors,INTERFACE_INCLUDE_DIRECTORIES>
)
IF (UNIX)
IF(ARCGIS_COMMON_LIBRARY_RELEASE)
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$<CONFIG:Release>:"${ARCGIS_COMMON_LIBRARY_RELEASE}">)
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$<CONFIG:Release>:"${ARCGIS_CPP_LIBRARY_RELEASE}">)
ENDIF()
IF(ARCGIS_COMMON_LIBRARY_DEBUG)
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$<CONFIG:Debug>:"${ARCGIS_COMMON_LIBRARY_DEBUG}">)
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$<CONFIG:Debug>:"${ARCGIS_CPP_LIBRARY_DEBUG}">)
ENDIF()
IF(ARCGIS_COMMON_LIBRARY AND NOT ARCGIS_COMMON_LIBRARY_RELEASE AND NOT ARCGIS_COMMON_LIBRARY_DEBUG)
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${ARCGIS_COMMON_LIBRARY}" "${ARCGIS_CPP_LIBRARY}")
ENDIF()
ELSE()
IF(ARCGIS_COMMON_LIBRARY_RELEASE)
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$<CONFIG:Release>:${ARCGIS_COMMON_LIBRARY_RELEASE}>)
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$<CONFIG:RelWithDebInfo>:${ARCGIS_COMMON_LIBRARY_RELEASE}>)
ENDIF()
IF(ARCGIS_COMMON_LIBRARY_DEBUG)
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES $<$<CONFIG:Debug>:${ARCGIS_COMMON_LIBRARY_DEBUG}>)
ENDIF()
IF(ARCGIS_COMMON_LIBRARY AND NOT ARCGIS_COMMON_LIBRARY_RELEASE AND NOT ARCGIS_COMMON_LIBRARY_DEBUG)
SET_PROPERTY(TARGET ArcGIS::ArcGIS APPEND PROPERTY INTERFACE_LINK_LIBRARIES "${ARCGIS_COMMON_LIBRARY}")
ENDIF()
ENDIF()
ENDIF()
+36
View File
@@ -0,0 +1,36 @@
INCLUDE(FindPackageHandleStandardArgs)
INCLUDE(FindLibraryWithDebug)
FIND_LIBRARY_WITH_DEBUG(BGVIEWER_DTENTITY_LIBRARY WIN32_DEBUG_POSTFIX d dtEntity)
FIND_LIBRARY_WITH_DEBUG(BGVIEWER_DTENTITYOSG_LIBRARY WIN32_DEBUG_POSTFIX d dtEntityOSG)
FIND_PATH(BGVIEWER_INCLUDE_DIR dtEntity/export.h)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(BgViewer DEFAULT_MSG
BGVIEWER_DTENTITY_LIBRARY
BGVIEWER_DTENTITYOSG_LIBRARY
BGVIEWER_INCLUDE_DIR)
SET(BGVIEWER_LIBRARIES ${BGVIEWER_DTENTITYOSG_LIBRARY}
${BGVIEWER_DTENTITY_LIBRARY})
+48
View File
@@ -0,0 +1,48 @@
include(FindPkgConfig)
if(NOT BOTAN_FOUND)
pkg_check_modules(Botan botan-2)
endif()
if(NOT BOTAN_FOUND)
find_path(BOTAN_INCLUDE_DIRS NAMES botan/botan.h
PATH_SUFFIXES botan-2
DOC "The botan include directory")
find_library(BOTAN_LIBRARIES NAMES botan botan-2
DOC "The botan library")
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Botan REQUIRED_VARS BOTAN_LIBRARIES BOTAN_INCLUDE_DIRS)
if(BOTAN_FOUND)
set(BOTAN_LIBRARY ${BOTAN_LIBRARIES} CACHE INTERNAL "")
set(BOTAN_INCLUDE_DIR ${BOTAN_INCLUDE_DIRS} CACHE INTERNAL "")
set(BOTAN_FOUND ${BOTAN_FOUND} CACHE INTERNAL "")
endif()
endif()
mark_as_advanced(BOTAN_INCLUDE_DIRS BOTAN_LIBRARIES)
+40
View File
@@ -0,0 +1,40 @@
IF(KDCHART_INCLUDE_DIRS AND KDCHART_LIBRARY)
SET(KDCHART_FOUND TRUE)
ELSE()
FIND_PATH(KDCHART_INCLUDE_DIRS KDChart/kdchart_export.h)
FIND_LIBRARY(KDCHART_LIBRARY NAMES kdchart)
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(KDChart DEFAULT_MSG KDCHART_LIBRARY KDCHART_INCLUDE_DIRS)
MARK_AS_ADVANCED(KDCHART_INCLUDE_DIRS KDCHART_LIBRARY)
ENDIF()
IF(NOT TARGET KDChart::KDChart)
ADD_LIBRARY(KDChart::KDChart UNKNOWN IMPORTED)
SET_PROPERTY(TARGET KDChart::KDChart PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${KDCHART_INCLUDE_DIRS}")
SET_PROPERTY(TARGET KDChart::KDChart PROPERTY INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${KDCHART_INCLUDE_DIRS}")
SET_PROPERTY(TARGET KDChart::KDChart PROPERTY IMPORTED_LOCATION "${KDCHART_LIBRARY}")
ENDIF()
+49
View File
@@ -0,0 +1,49 @@
FIND_PACKAGE(Qt5 COMPONENTS Core Gui PrintSupport Sql Svg Widgets Xml REQUIRED)
IF(KDREPORTS_INCLUDE_DIR AND KDREPORTS_KDREPORTS_INCLUDE_DIR AND KDREPORTS_LIBRARY)
SET(KDREPORTS_FOUND TRUE)
ELSE()
FIND_PATH(KDREPORTS_INCLUDE_DIR KDReports/KDReports.h)
FIND_PATH(KDREPORTS_KDREPORTS_INCLUDE_DIR KDReports.h PATH_SUFFIXES KDReports)
FIND_LIBRARY(KDREPORTS_LIBRARY NAMES kdreports)
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(KDReports DEFAULT_MSG
KDREPORTS_LIBRARY
KDREPORTS_INCLUDE_DIR
KDREPORTS_KDREPORTS_INCLUDE_DIR
)
MARK_AS_ADVANCED(KDREPORTS_INCLUDE_DIR KDREPORTS_LIBRARY)
MARK_AS_ADVANCED(KDREPORTS_KDREPORTS_INCLUDE_DIR KDREPORTS_LIBRARY)
ENDIF()
IF(NOT TARGET KDReports::KDReports)
ADD_LIBRARY(KDReports::KDReports UNKNOWN IMPORTED)
SET_PROPERTY(TARGET KDReports::KDReports PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${KDREPORTS_INCLUDE_DIR}" "${KDREPORTS_KDREPORTS_INCLUDE_DIR}")
SET_PROPERTY(TARGET KDReports::KDReports PROPERTY INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${KDREPORTS_INCLUDE_DIR}" "${KDREPORTS_KDREPORTS_INCLUDE_DIR}")
SET_PROPERTY(TARGET KDReports::KDReports PROPERTY IMPORTED_LOCATION "${KDREPORTS_LIBRARY}")
SET_PROPERTY(TARGET KDReports::KDReports APPEND PROPERTY INTERFACE_LINK_LIBRARIES Qt5::Core Qt5::Gui Qt5::PrintSupport Qt5::Widgets)
ENDIF()
+113
View File
@@ -0,0 +1,113 @@
MACRO(FIND_LIBRARY_WITH_DEBUG var_name win32_dbg_postfix_name dgb_postfix libname)
IF(NOT "${win32_dbg_postfix_name}" STREQUAL "WIN32_DEBUG_POSTFIX")
FIND_LIBRARY(${var_name}
${win32_dbg_postfix_name}
${dgb_postfix}
${libname}
${ARGN}
)
ELSE()
IF(NOT WIN32)
FIND_LIBRARY(${var_name} ${libname} ${ARGN})
ELSE()
SET(args ${ARGN})
SET(newargs "")
SET(libnames_release "")
SET(libnames_debug "")
IF("${libname}" STREQUAL "NAMES")
SET(append_rest 0)
LIST(LENGTH args listCount)
LIST(APPEND args " ")
FOREACH(i RANGE ${listCount})
LIST(GET args ${i} val)
IF(append_rest)
LIST(APPEND newargs ${val})
ELSE()
IF(${val} STREQUAL "PATHS" OR ${val} STREQUAL "HINTS")
LIST(APPEND newargs ${val})
SET(append_rest 1)
ELSE()
LIST(APPEND libnames_release "${val}")
LIST(APPEND libnames_debug "${val}${dgb_postfix}")
ENDIF()
ENDIF()
ENDFOREACH()
ELSE()
LIST(APPEND libnames_release "${libname}")
LIST(APPEND libnames_debug "${libname}${dgb_postfix}")
SET(newargs ${args})
ENDIF()
FIND_LIBRARY(${var_name}_RELEASE
NAMES ${libnames_release}
${newargs}
)
FIND_LIBRARY(${var_name}_DEBUG
NAMES ${libnames_debug}
${newargs}
)
IF(${var_name}_RELEASE AND ${var_name}_DEBUG)
SET(${var_name} optimized ${${var_name}_RELEASE}
debug ${${var_name}_DEBUG})
ELSE()
IF(${var_name}_RELEASE)
SET(${var_name} ${${var_name}_RELEASE})
ELSE()
SET(${var_name} ${${var_name}_DEBUG})
ENDIF()
ENDIF()
MARK_AS_ADVANCED(${var_name}_RELEASE)
MARK_AS_ADVANCED(${var_name}_DEBUG)
ENDIF()
ENDIF()
ENDMACRO()
+134
View File
@@ -0,0 +1,134 @@
IF(NGS_INCLUDE_DIRS AND NGS_LIBRARIES)
SET(NGS_FOUND TRUE)
ELSE()
SET(FOM_NAME "RPRFOM20d17E")
IF("$ENV{NGS_ROOT}" STREQUAL "")
SET(NGS_ROOT "/opt/NGS/NGSPublic")
MESSAGE(STATUS "NGS_ROOT env var not set - using ${NGS_ROOT}")
ELSE()
SET(NGS_ROOT "$ENV{NGS_ROOT}")
ENDIF()
FIND_PROGRAM(NGS_FOMBUILD fombuild
PATHS ${NGS_ROOT}/exe
)
FIND_PATH(NGS_INCLUDE_DIR NGSUtils/SimTime.h
PATHS ${NGS_ROOT}/include
)
FIND_PATH(NGS_SM_INCLUDE_DIR ISystem.h
PATHS ${NGS_INCLUDE_DIR}
PATH_SUFFIXES SimulationManager
)
FIND_PATH(NGS_FC_INCLUDE_DIR IRTIAmbassador.h
PATHS ${NGS_INCLUDE_DIR}
PATH_SUFFIXES RTIFacadeAPI
)
FIND_PATH(NGS_GE_INCLUDE_DIR SimulatedWorldAPI.h
PATHS ${NGS_INCLUDE_DIR}
PATH_SUFFIXES SWGeneral
)
FIND_PATH(NGS_UT_INCLUDE_DIR NGSConfig.h
PATHS ${NGS_INCLUDE_DIR}
PATH_SUFFIXES NGSUtils
)
FIND_PATH(NGS_PF_INCLUDE_DIR configureBool.h
PATHS ${NGS_INCLUDE_DIR}
PATH_SUFFIXES NGSPlatformConfigure
)
FIND_PATH(NGS_FOM_INCLUDE_DIR WorldLocationStruct.h
PATHS ${NGS_INCLUDE_DIR}
PATH_SUFFIXES sw${FOM_NAME}/rpr
PATH_SUFFIXES sw${FOM_NAME}/rpr2
)
FIND_LIBRARY(NGS_LIBRARY NGS
PATHS ${NGS_ROOT}/lib
PATHS ${NGS_ROOT}/lib64
)
FIND_LIBRARY(NGS_LIBRARY_SWGENERAL SWGENERAL
PATHS ${NGS_ROOT}/lib
PATHS ${NGS_ROOT}/lib64
)
FIND_LIBRARY(NGS_LIBRARY_UTILS NGSUtils
PATHS ${NGS_ROOT}/lib
PATHS ${NGS_ROOT}/lib64
)
FIND_LIBRARY(FOM_LIBRARY SW${FOM_NAME}
PATHS ${NGS_ROOT}/lib
PATHS ${NGS_ROOT}/lib64
)
FIND_LIBRARY(NGS_LIBRARY_CORBA CorbaNotify
PATHS ${NGS_ROOT}/lib/CorbaNotifyCdr
)
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(NGS DEFAULT_MSG NGS_LIBRARY
NGS_LIBRARY_SWGENERAL
NGS_LIBRARY_UTILS
NGS_LIBRARY_CORBA
FOM_LIBRARY
NGS_SM_INCLUDE_DIR
NGS_FC_INCLUDE_DIR
NGS_GE_INCLUDE_DIR
NGS_UT_INCLUDE_DIR
)
SET(NGS_INCLUDE_DIRS
${NGS_INCLUDE_DIR}
${NGS_SM_INCLUDE_DIR}
${NGS_FC_INCLUDE_DIR}
${NGS_GE_INCLUDE_DIR}
${NGS_UT_INCLUDE_DIR}
${NGS_PF_INCLUDE_DIR}
${NGS_FOM_INCLUDE_DIR}
CACHE STRING "All ngs include dirs" FORCE
)
SET(NGS_LIBRARIES
${NGS_LIBRARY}
${NGS_LIBRARY_SWGENERAL}
${NGS_LIBRARY_UTILS}
${NGS_LIBRARY_CORBA}
${FOM_LIBRARY}
CACHE STRING "All ngs libraries" FORCE
)
MARK_AS_ADVANCED(NGS_INCLUDE_DIR NGS_LIBRARY FOM_LIBRARY)
ENDIF()
SET(NGS_IS_GUEZ OFF)
SET(NGS_IS_AHTC OFF)
IF (NGS_FOUND)
FIND_PATH(NGS_GUEZ_INCLUDE_DIR TacticalStatusStruct.h
PATHS ${NGS_FOM_INCLUDE_DIR})
FIND_PATH(NGS_AHTC_INCLUDE_DIR LongBowApacheObjClass.h
PATHS ${NGS_FOM_INCLUDE_DIR})
IF (NGS_GUEZ_INCLUDE_DIR AND EXISTS "${NGS_GUEZ_INCLUDE_DIR}/TacticalStatusStruct.h")
SET(NGS_IS_GUEZ ON)
MESSAGE(STATUS "NGS - GUEZ version (${NGS_GUEZ_INCLUDE_DIR})")
ELSE()
SET(NGS_IS_GUEZ OFF)
ENDIF()
IF (NGS_AHTC_INCLUDE_DIR AND EXISTS "${NGS_AHTC_INCLUDE_DIR}/LongBowApacheObjClass.h")
SET(NGS_IS_AHTC ON)
MESSAGE(STATUS "NGS - AHTC version (${NGS_AHTC_INCLUDE_DIR})")
ELSE()
SET(NGS_IS_AHTC OFF)
ENDIF()
ENDIF()
IF(NOT TARGET NGS::NGS)
ADD_LIBRARY(NGS::NGS UNKNOWN IMPORTED)
SET_PROPERTY(TARGET NGS::NGS PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${NGS_INCLUDE_DIRS})
SET_PROPERTY(TARGET NGS::NGS PROPERTY INTERFACE_SYSTEM_INCLUDE_DIRECTORIES ${NGS_INCLUDE_DIRS})
SET_PROPERTY(TARGET NGS::NGS PROPERTY IMPORTED_LOCATION "${NGS_LIBRARY}")
SET_PROPERTY(TARGET NGS::NGS APPEND PROPERTY INTERFACE_LINK_LIBRARIES
"${NGS_LIBRARY_SWGENERAL}"
"${NGS_LIBRARY_UTILS}"
"${NGS_LIBRARY_CORBA}"
"${FOM_LIBRARY}"
)
ENDIF()
+61
View File
@@ -0,0 +1,61 @@
if(POPPLER_QT5_INCLUDE_DIR AND POPPLER_QT5_LIBRARY)
set(POPPLER_QT5_FOUND TRUE)
else(POPPLER_QT5_INCLUDE_DIR AND POPPLER_QT5_LIBRARY)
set(_poppler_version_bad FALSE)
if(NOT WIN32)
include(FindPkgConfig)
pkg_check_modules(_pc_poppler poppler-qt5)
if(_pc_poppler_FOUND)
if(NOT "${_pc_poppler_VERSION}" VERSION_GREATER 0.24.0)
set(_poppler_version_bad TRUE)
endif(NOT "${_pc_poppler_VERSION}" VERSION_GREATER 0.24.0)
endif(_pc_poppler_FOUND)
endif(NOT WIN32)
if(NOT _poppler_version_bad)
set(POPPLER_QT5_FOUND FALSE)
find_library(POPPLER_QT5_LIBRARY poppler-qt5
HINTS ${_pc_poppler_LIBRARY_DIRS}
)
find_path(POPPLER_QT5_INCLUDE_DIR poppler-qt5.h
HINTS ${_pc_poppler_INCLUDE_DIRS}
PATH_SUFFIXES poppler/qt5
)
find_path(POPPLER_QT5_INCLUDE_DIR_core qt5/poppler-qt5.h
HINTS ${_pc_poppler_INCLUDE_DIRS}
PATH_SUFFIXES poppler
)
if(POPPLER_QT5_LIBRARY AND POPPLER_QT5_INCLUDE_DIR AND POPPLER_QT5_INCLUDE_DIR_core)
list(APPEND POPPLER_QT5_INCLUDE_DIR "${POPPLER_QT5_INCLUDE_DIR_core}")
set(POPPLER_QT5_FOUND TRUE)
endif(POPPLER_QT5_LIBRARY AND POPPLER_QT5_INCLUDE_DIR AND POPPLER_QT5_INCLUDE_DIR_core)
endif(NOT _poppler_version_bad)
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(PopplerQt5 DEFAULT_MSG
POPPLER_QT5_LIBRARY
POPPLER_QT5_INCLUDE_DIR)
endif(POPPLER_QT5_INCLUDE_DIR AND POPPLER_QT5_LIBRARY)
+179
View File
@@ -0,0 +1,179 @@
SET(_rti_gcc_arch "")
IF(NOT RTI_DIR)
SET(_arch "unknown")
IF(WIN32)
SET(_RTI_DIR $ENV{DDS_PATH})
IF(NOT _RTI_DIR)
GET_FILENAME_COMPONENT(_rti_root_path "[HKEY_LOCAL_MACHINE\\SOFTWARE\\Real-Time Innovations\\RTI Connext DDS Pro 5.2.3;Location]" ABSOLUTE)
SET(_RTI_DIR "${_rti_root_path}")
ENDIF()
IF(MSVC_VERSION EQUAL 1900)
SET(_rti_msvc_ver "VS2015")
ELSEIF(MSVC_VERSION GREATER_EQUAL 1910)
SET(_rti_msvc_ver "VS2017")
ENDIF()
IF(CMAKE_SIZEOF_VOID_P EQUAL 8)
SET(_rti_msvc_ver "x64Win64${_rti_msvc_ver}")
ELSE()
SET(_rti_msvc_ver "i86Win32${_rti_msvc_ver}")
ENDIF()
IF(NOT ${_rti_root_path})
SET(_RTI_DIR $ENV{KDEROOT})
FILE(TO_CMAKE_PATH "${_RTI_DIR}" _RTI_DIR)
IF(NOT EXISTS "${_RTI_DIR}" OR NOT IS_DIRECTORY "${_RTI_DIR}")
SET(_RTI_DIR $ENV{WORKSPACE})
FILE(TO_CMAKE_PATH "${_RTI_DIR}" _RTI_DIR)
ENDIF()
IF(NOT EXISTS "${_RTI_DIR}" OR NOT IS_DIRECTORY "${_RTI_DIR}")
SET(_RTI_DIR ${EXTERNAL_LIBRARY_DIR})
FILE(TO_CMAKE_PATH "${_RTI_DIR}" _RTI_DIR)
ENDIF()
ENDIF()
SET(_arch "${_rti_msvc_ver}")
ELSE(WIN32)
SET(_RTI_DIR $ENV{DDS_PATH})
IF(NOT _RTI_DIR)
SET(_RTI_DIR "/opt/RTI")
ENDIF()
IF(NOT EXISTS "${_RTI_DIR}" OR NOT IS_DIRECTORY "${_RTI_DIR}")
MESSAGE(FATAL_ERROR "Umgebungsvariable DDS_PATH nicht gesetzt!")
ENDIF()
SET(_rti_gcc_arch "x64Linux3gcc4.8.2")
IF("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
IF(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 5.0.0)
SET(_rti_gcc_arch "x64Linux3gcc5.4.0")
SET(_tmp "${_RTI_DIR}/lib/${_rti_gcc_arch}")
IF (NOT EXISTS ${_tmp})
SET(_rti_gcc_arch "x64Linux4gcc7.3.0")
ENDIF()
ENDIF()
ENDIF()
SET(_arch "${_rti_gcc_arch}")
ENDIF()
SET(RTI_DIR "${_RTI_DIR}" CACHE STRING "RTI base path" FORCE)
MESSAGE(STATUS "Trying to use RTI from ${RTI_DIR} with arch ${_arch}")
ENDIF()
IF(WIN32)
SET(_rti_include_hint "${RTI_DIR}/include/")
SET(_rti_library_hint "${RTI_DIR}/lib/${_rti_msvc_ver}/")
ELSE()
SET(_rti_include_hint "${RTI_DIR}/include/")
SET(_rti_library_hint "${RTI_DIR}/lib/")
ENDIF()
IF(NOT RTI_INCLUDE_DIR)
FIND_PATH(RTI_INCLUDE_DIR ndds/ndds_cpp.h HINTS ${_rti_include_hint})
IF(RTI_INCLUDE_DIR)
SET(RTI_INCLUDE_DIRS "${RTI_INCLUDE_DIR}" "${RTI_INCLUDE_DIR}/ndds" "${RTI_INCLUDE_DIR}/ndds/hpp" CACHE STRING "RTI include directories" FORCE)
MARK_AS_ADVANCED(RTI_INCLUDE_DIRS)
ELSE()
MESSAGE(FATAL "Could not find RTI include directory at ${_rti_include_hint}")
ENDIF()
ENDIF()
IF(NOT RTI_DDSGEN_EXECUTABLE)
FIND_PROGRAM(RTI_DDSGEN_EXECUTABLE NAMES rtiddsgen rtiddsgen.bat HINTS ${RTI_DIR}/scripts ${RTI_DIR}/bin)
ENDIF()
IF(NOT RTI_VERSION_MAJOR)
EXEC_PROGRAM(${RTI_DDSGEN_EXECUTABLE} ARGS -version OUTPUT_VARIABLE _dds_version_output)
STRING(REGEX REPLACE ".* ([0-9]\\.[0-9]\\.[0-9]).*" "\\1" _dds_version_output ${_dds_version_output})
SET(_rti_version_major 5)
IF(_dds_version_output VERSION_GREATER 2.9.9)
SET(_rti_version_major 6)
ENDIF()
SET(RTI_VERSION_MAJOR ${_rti_version_major} CACHE STRING "RTI version" FORCE)
ENDIF()
INCLUDE(FindLibraryWithDebug)
INCLUDE(FindPackageHandleStandardArgs)
SET(_RTI_LIBS nddscore nddsc nddscpp2 rtiroutingservice)
SET(_libs "")
SET(_lib_vars "")
FOREACH(_lib ${_RTI_LIBS})
SET(_libname "RTI_${_lib}_LIBRARY")
IF (NOT ${_libname})
FIND_LIBRARY_WITH_DEBUG("${_libname}"
WIN32_DEBUG_POSTFIX d
NAMES ${_lib}
HINTS ${_rti_library_hint} ${RTI_DIR}/lib ${RTI_DIR}/lib/${_rti_gcc_arch})
ENDIF()
SET(_tgt_name RTI::${_lib})
IF(NOT TARGET ${_tgt_name})
ADD_LIBRARY(${_tgt_name} UNKNOWN IMPORTED)
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${RTI_INCLUDE_DIRS}")
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${RTI_INCLUDE_DIRS}")
IF(UNIX)
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY INTERFACE_COMPILE_DEFINITIONS "RTI_UNIX;RTI_LINUX;RTI_64BIT" )
ENDIF()
IF(WIN32)
IF("${_lib}" STREQUAL "rtiroutingservice")
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY INTERFACE_COMPILE_DEFINITIONS "RTI_WIN32;RTI_routingservice_DLL_VARIABLE" )
ELSE()
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY INTERFACE_COMPILE_DEFINITIONS "RTI_WIN32;NDDS_DLL_VARIABLE" )
ENDIF()
ENDIF()
IF(${_libname}_RELEASE)
SET_PROPERTY(TARGET ${_tgt_name} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY IMPORTED_LOCATION_RELEASE "${${_libname}_RELEASE}")
ENDIF()
IF(${_libname}_DEBUG)
SET_PROPERTY(TARGET ${_tgt_name} APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY IMPORTED_LOCATION_DEBUG "${${_libname}_DEBUG}")
ENDIF()
IF(NOT ${_libname}_RELEASE AND NOT ${_libname}_DEBUG)
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY IMPORTED_LOCATION "${${_libname}}")
ENDIF()
ENDIF()
LIST(APPEND _libs "${${_libname}}")
LIST(APPEND _lib_vars "${_libname}")
ENDFOREACH()
IF(TARGET RTI::nddscore AND UNIX)
SET_PROPERTY(TARGET RTI::nddscore PROPERTY INTERFACE_LINK_LIBRARIES "dl" )
ENDIF()
SET(RTI_LIBRARIES ${_libs} CACHE STRING "All rti libraries" FORCE)
MARK_AS_ADVANCED(RTI_LIBRARIES)
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(RTI DEFAULT_MSG RTI_DIR RTI_INCLUDE_DIR RTI_DDSGEN_EXECUTABLE ${_lib_vars})
+40
View File
@@ -0,0 +1,40 @@
IF(SCHUSSTAFEL_INCLUDE_DIR AND SCHUSSTAFEL_LIBRARY)
SET(SCHUSSTAFEL_FOUND TRUE)
ELSE(SCHUSSTAFEL_INCLUDE_DIR AND SCHUSSTAFEL_LIBRARY)
FIND_PATH(SCHUSSTAFEL_INCLUDE_DIR Schusstafel.h)
FIND_LIBRARY_WITH_DEBUG(SCHUSSTAFEL_LIBRARY WIN32_DEBUG_POSTFIX d NAMES Schusstafel libSchusstafel)
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(Schusstafel DEFAULT_MSG SCHUSSTAFEL_LIBRARY SCHUSSTAFEL_INCLUDE_DIR)
MARK_AS_ADVANCED(SCHUSSTAFEL_INCLUDE_DIR SCHUSSTAFEL_LIBRARY)
ENDIF(SCHUSSTAFEL_INCLUDE_DIR AND SCHUSSTAFEL_LIBRARY)
+104
View File
@@ -0,0 +1,104 @@
IF(NOT TMSIF_DIR)
SET(_arch "unknown")
SET(_TMSIF_DIR $ENV{TMSIF_PATH})
IF(NOT _TMSIF_DIR)
SET(_TMSIF_DIR "/opt/tmsif")
ENDIF()
IF(NOT EXISTS "${_TMSIF_DIR}" OR NOT IS_DIRECTORY "${_TMSIF_DIR}")
MESSAGE(FATAL_ERROR "Umgebungsvariable TMSIF_PATH nicht gesetzt!")
ENDIF()
SET(TMSIF_DIR "${_TMSIF_DIR}" CACHE STRING "TMSIF base path" FORCE)
MESSAGE(STATUS "Trying to use TMSIF_DIR from ${TMSIF_DIR}")
ENDIF()
SET(_tmsif_include_hint "${TMSIF_DIR}/include/")
SET(_tmsif_library_hint "${TMSIF_DIR}/lib/")
IF(NOT TMSIF_INCLUDE_DIR)
FIND_PATH(TMSIF_INCLUDE_DIR Common.h HINTS ${_tmsif_include_hint})
IF(TMSIF_INCLUDE_DIR)
SET(TMSIF_INCLUDE_DIRS "${TMSIF_INCLUDE_DIR}" "${TMSIF_INCLUDE_DIR}/ddscxx" CACHE STRING "TMSIF include directories" FORCE)
MARK_AS_ADVANCED(TMSIF_INCLUDE_DIRS)
ELSE()
MESSAGE(FATAL "Could not find TMSIF include directory at ${_tmsif_include_hint}")
ENDIF()
ENDIF()
SET(_TMSIF_LIBS tmsif-cyclone ddscxx ddkit-cyclone )
SET(_libs "")
SET(_lib_vars "")
FOREACH(_lib ${_TMSIF_LIBS})
SET(_libname "TMSIF_${_lib}_LIBRARY")
IF (NOT ${_libname})
FIND_LIBRARY_WITH_DEBUG("${_libname}"
WIN32_DEBUG_POSTFIX d
NAMES ${_lib}
HINTS ${_tmsif_library_hint} ${TMSIF_DIR}/lib )
ENDIF()
SET(_tgt_name TMSIF::${_lib})
IF(NOT TARGET ${_tgt_name})
ADD_LIBRARY(${_tgt_name} UNKNOWN IMPORTED)
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY INTERFACE_INCLUDE_DIRECTORIES "${TMSIF_INCLUDE_DIRS}")
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${TMSIF_INCLUDE_DIRS}")
IF(UNIX)
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY INTERFACE_COMPILE_DEFINITIONS "TMSIF_UNIX;TMSIF_LINUX;TMSIF_64BIT" )
ENDIF()
IF(${_libname}_RELEASE)
SET_PROPERTY(TARGET ${_tgt_name} APPEND PROPERTY IMPORTED_CONFIGURATIONS RELEASE)
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY IMPORTED_LOCATION_RELEASE "${${_libname}_RELEASE}")
ENDIF()
IF(${_libname}_DEBUG)
SET_PROPERTY(TARGET ${_tgt_name} APPEND PROPERTY IMPORTED_CONFIGURATIONS DEBUG)
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY IMPORTED_LOCATION_DEBUG "${${_libname}_DEBUG}")
ENDIF()
IF(NOT ${_libname}_RELEASE AND NOT ${_libname}_DEBUG)
SET_PROPERTY(TARGET ${_tgt_name} PROPERTY IMPORTED_LOCATION "${${_libname}}")
ENDIF()
ENDIF()
LIST(APPEND _libs "${${_libname}}")
LIST(APPEND _lib_vars "${_libname}")
ENDFOREACH()
SET(TMSIF_LIBRARIES ${_libs} CACHE STRING "All TMSIF libraries" FORCE)
MARK_AS_ADVANCED(TMSIF_LIBRARIES)
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(TMSIF DEFAULT_MSG TMSIF_DIR TMSIF_INCLUDE_DIR ${_lib_vars})
+49
View File
@@ -0,0 +1,49 @@
IF(VLC_INCLUDE_DIR AND VLC_LIBRARIES)
SET(VLC_FOUND TRUE)
ELSE()
INCLUDE(FindPackageHandleStandardArgs)
INCLUDE(FindLibraryWithDebug)
FIND_LIBRARY_WITH_DEBUG(VLC_LIBRARIES WIN32_DEBUG_POSTFIX d NAMES vlc libvlc)
FIND_PATH(VLC_INCLUDE_DIR vlc/vlc.h)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(VLC DEFAULT_MSG VLC_LIBRARIES VLC_INCLUDE_DIR)
FIND_PATH(VLC_IS_2_0_ABOVE vlc/libvlc_version.h
PATHS ${VLC_INCLUDE_DIR}
NO_DEFAULT_PATH)
IF(NOT VLC_IS_2_0_ABOVE)
MESSAGE(FATAL_ERROR "Need at least VLC 2.x")
ENDIF()
MARK_AS_ADVANCED(VLC_DEFINES)
ENDIF()
+81
View File
@@ -0,0 +1,81 @@
IF(XSD_INCLUDE_DIR AND XSD_COMPILER)
SET(XSD_FOUND TRUE)
ELSE(XSD_INCLUDE_DIR AND XSD_COMPILER)
FIND_PROGRAM(XSD_COMPILER NAMES xsdcxx xsd)
FIND_PATH(XSD_INCLUDE_DIR xsd/cxx/config.hxx)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(XSD DEFAULT_MSG
XSD_COMPILER
XSD_INCLUDE_DIR
)
MARK_AS_ADVANCED(XSD_COMPILER
XSD_INCLUDE_DIR)
ENDIF(XSD_INCLUDE_DIR AND XSD_COMPILER)
MACRO(XSD_GENERATE_TREE srcList infile)
GET_FILENAME_COMPONENT(output ${infile} NAME)
GET_FILENAME_COMPONENT(input ${infile} ABSOLUTE)
GET_FILENAME_COMPONENT(dir ${infile} DIRECTORY)
EXEC_PROGRAM(${XSD_COMPILER} ARGS version OUTPUT_VARIABLE _xsd_version_output)
STRING(REGEX REPLACE ".* ([0-9]\\.[0-9]\\.[0-9]).*" "\\1" _xsd_version_output ${_xsd_version_output})
SET(_xsd_in ${input})
SET(_cpp_out ${dir}/${output}.cxx)
SET(_hpp_out ${dir}/${output}.hxx)
STRING(REPLACE ".xsd" "" _cpp_out "${_cpp_out}")
STRING(REPLACE ".xsd" "" _hpp_out "${_hpp_out}")
SET(additional_xsd_args "")
IF(_xsd_version_output VERSION_GREATER 3.9.0)
IF(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 4.7.0)
SET(additional_xsd_args --std c++11)
ELSE()
IF(WIN32 OR NOT CMAKE_COMPILER_IS_GNUCC)
SET(additional_xsd_args --std c++11)
ENDIF(WIN32 OR NOT CMAKE_COMPILER_IS_GNUCC)
ENDIF()
ENDIF()
ADD_CUSTOM_COMMAND(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${dir}
COMMAND ${CMAKE_COMMAND}
ARGS -E make_directory ${CMAKE_CURRENT_BINARY_DIR}/${dir}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
)
ADD_CUSTOM_COMMAND(OUTPUT ${_cpp_out} ${_hpp_out}
COMMAND ${XSD_COMPILER}
ARGS cxx-tree ${additional_xsd_args} --generate-serialization ${_xsd_in}
DEPENDS ${_xsd_in} ${CMAKE_CURRENT_BINARY_DIR}/${dir}
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/${dir}
)
LIST(APPEND ${srcList} ${_cpp_out} ${_hpp_out} ${infile})
ENDMACRO(XSD_GENERATE_TREE srcList infile)
+511
View File
@@ -0,0 +1,511 @@
INCLUDE(CMakeParseArguments)
MACRO(_ADD_SERVICE_RESTART_FLAG svcName)
STRING(TOUPPER ${svcName} _svcNameUpper)
STRING(TOLOWER ${svcName} _svcNameLower)
SET(_optionName DONTRESTARTSVC_${_svcNameUpper})
OPTION(${_optionName} "Do not automatically restart Service ${_svcNameUpper} (build dir only)" OFF)
SET(_fn "${CMAKE_BINARY_DIR}/share/Lts/xml/${_svcNameLower}.dontRestart")
IF (${_optionName})
FILE(WRITE ${_fn} "blub")
ELSE()
FILE(REMOVE ${_fn})
ENDIF()
ENDMACRO()
MACRO(_GET_SERVICENAME xmlFile_in svcNameOut)
GET_FILENAME_COMPONENT(xmlFile ${xmlFile_in} NAME_WE)
SET(_idx -1)
STRING(FIND "${xmlFile}" "_" _idx)
STRING(SUBSTRING "${xmlFile}" 0 ${_idx} ${svcNameOut})
ENDMACRO()
MACRO(_CODEGEN_ACTION action srcList xmlIn in_files out_files)
LIST(APPEND dependFiles ${ARGN} ${xmlIn} ${${in_files}})
SET(_cg codegen)
ADD_CUSTOM_COMMAND(OUTPUT ${${out_files}}
COMMAND ${_cg}
ARGS -s ${xmlIn}
-a ${action}
-o ${CMAKE_CURRENT_BINARY_DIR}
-i ${CMAKE_BINARY_DIR}/service_idl_files.txt
${${in_files}}
DEPENDS ${_cg} ${dependFiles}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
LIST(APPEND ${srcList} ${${out_files}})
GET_FILENAME_COMPONENT(_xml "${CMAKE_CURRENT_SOURCE_DIR}/${xmlIn}" ABSOLUTE)
SET_PROPERTY(GLOBAL APPEND PROPERTY CODEGEN_IDL_FILES "${_xml}")
ENDMACRO()
MACRO(CODEGEN_DATABASE_STRUCTS srcList_h xmlFile_in)
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
SET(in_files "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db_structs.cpp.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db_structs.h.grantlee"
)
SET(out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_structs.cpp"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_structs.h"
)
_CODEGEN_ACTION("DATABASE" ${srcList_h} ${xmlFile_in} in_files out_files ${ARGN})
ENDMACRO()
MACRO(CODEGEN_DATABASE_SQL srcList xmlFile_in)
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
SET(in_files "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db.h.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db_impl.cpp.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db_impl.h.grantlee"
)
SET(out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db.h"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_impl.cpp"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_impl.h"
)
_CODEGEN_ACTION("DATABASE" ${srcList} ${xmlFile_in} in_files out_files ${ARGN})
IF(NOT POLICY CMP0071)
QT5_WRAP_CPP(${srcList} "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db.h"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_impl.h")
ENDIF()
ENDMACRO()
MACRO(CODEGEN_DAO srcList xmlFile_in)
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
SET(in_files "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dao.cpp.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dao.h.grantlee"
)
SET(out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dao.cpp"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dao.h"
)
_CODEGEN_ACTION("dao" ${srcList} ${xmlFile_in} in_files out_files ${ARGN})
IF(NOT POLICY CMP0071)
QT5_WRAP_CPP(${srcList} "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dao.cpp"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dao.h")
ENDIF()
ENDMACRO()
MACRO(CODEGEN_DATABASE srcList xmlFile_in)
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
SET(in_files "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db_structs.cpp.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db_structs.h.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db_impl.cpp.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db_impl.h.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_db.h.grantlee"
)
SET(out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_structs.cpp"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_structs.h"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_impl.cpp"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_impl.h"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db.h"
)
_CODEGEN_ACTION("DATABASE_SERVER" ${srcList} ${xmlFile_in} in_files out_files ${ARGN})
IF(NOT POLICY CMP0071)
QT5_WRAP_CPP(${srcList} "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db.h"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_db_impl.h")
ENDIF()
ENDMACRO()
MACRO(INSTALL_SHARED_FILES srcList)
SET(options)
SET(oneValueArgs DESTINATION)
SET(multiValueArgs FILES)
CMAKE_PARSE_ARGUMENTS(_ISF "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
SET(build_out_dir ${CMAKE_BINARY_DIR}/share/Lts/${_ISF_DESTINATION})
SET(inst_out_dir share/Lts/${_ISF_DESTINATION})
FOREACH(filename ${_ISF_FILES})
GET_FILENAME_COMPONENT(fn ${filename} NAME)
SET(build_out_file ${build_out_dir}/${fn})
SET(in_file ${CMAKE_CURRENT_SOURCE_DIR}/${filename})
ADD_CUSTOM_COMMAND(OUTPUT ${build_out_file}
COMMAND ${CMAKE_COMMAND}
ARGS -E make_directory ${build_out_dir}
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different ${in_file} ${build_out_file}
DEPENDS ${in_file}
)
LIST(APPEND ${srcList} ${in_file} ${build_out_file})
ENDFOREACH()
NGL_INSTALL(${_ISF_UNPARSED_ARGUMENTS} FILES ${_ISF_FILES} DESTINATION ${inst_out_dir})
ENDMACRO()
MACRO(CODEGEN_SQL srcList xmlFile_in)
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
SET(out_dir_sql "${CMAKE_BINARY_DIR}/share/Lts/sql/")
SET(out_file_sql "${out_dir_sql}/${svcNameOut}.sql")
SET(action "SQL")
ADD_CUSTOM_COMMAND(OUTPUT ${out_file_sql}
COMMAND ${CMAKE_COMMAND}
ARGS -E make_directory ${out_dir_sql}
COMMAND codegen
ARGS -s ${xmlFile_in}
-a ${action}
-o ${out_dir_sql}
-i ${CMAKE_BINARY_DIR}/service_idl_files.txt
DEPENDS ${_cg} ${xmlFile_in}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
LIST(APPEND ${srcList} ${out_file_sql})
NGL_INSTALL(SV AAR FILES ${out_file_sql} DESTINATION share/Lts/sql)
ENDMACRO()
MACRO(CODEGEN_HANDLE_SVC_XML srcList xmlFile_in)
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
SET(out_dir_xml "${CMAKE_BINARY_DIR}/share/Lts/xml/")
SET(out_file_xml "${out_dir_xml}/${svcNameOut}.xml")
ADD_CUSTOM_COMMAND(OUTPUT ${out_file_xml}
COMMAND ${CMAKE_COMMAND}
ARGS -E make_directory ${out_dir_xml}
COMMAND ${CMAKE_COMMAND}
ARGS -E copy_if_different ${xmlFile_in} ${out_file_xml}
DEPENDS ${xmlFile_in}
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
)
LIST(APPEND ${srcList} ${xmlFile_in} ${out_file_xml})
_ADD_SERVICE_RESTART_FLAG(${svcNameOut})
NGL_INSTALL(SV AAR FILES ${out_file_xml} DESTINATION share/Lts/xml)
ENDMACRO()
MACRO(CODEGEN_IDL_SVC srcList xmlFile_in)
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
SET(in_files "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc.idl.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_enums.idl.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_json.cpp.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_json.h.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_translation.cpp.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_translation.h.grantlee"
)
SET(out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}.idl"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_enums.idl")
SET_PROPERTY(GLOBAL APPEND PROPERTY CODEGEN_IDL_FILES "${out_files}")
SET_SOURCE_FILES_PROPERTIES(${out_files} PROPERTIES HEADER_FILE_ONLY TRUE)
LIST(APPEND out_files
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_json.cpp"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_json.h"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_translation.cpp"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_translation.h")
_CODEGEN_ACTION("DDS_TOPICS" ${srcList} "${xmlFile_in}" in_files out_files ${ARGN})
CODEGEN_HANDLE_SVC_XML(${srcList} ${xmlFile_in})
ENDMACRO()
FIND_PACKAGE(PythonInterp 2.7 REQUIRED)
MACRO(CODEGEN_TOPIC_TYPEDEFS srcList xmlFile_in)
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
SET(inFile ${xmlFile_in})
IF(NOT IS_ABSOLUTE ${inFile})
SET(inFile ${CMAKE_CURRENT_SOURCE_DIR}/${inFile})
IF(NOT EXISTS ${inFile})
SET(inFile ${CMAKE_CURRENT_BINARY_DIR}/${inFile})
ENDIF()
ENDIF()
SET(prog ${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/codegen_simple.py)
SET(out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dts_types.h"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dtc_types.h"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_fts_types.h"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_ftc_types.h"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_operator_rights.h"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_operator_rights.cpp"
"${CMAKE_BINARY_DIR}/share/Lts/sql/${svcNameOut}_operator_rights.sql"
)
ADD_CUSTOM_COMMAND( OUTPUT ${out_files}
COMMAND ${CMAKE_COMMAND}
ARGS -E make_directory ${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${CMAKE_COMMAND}
ARGS -E make_directory ${CMAKE_BINARY_DIR}/share/Lts/sql/
COMMAND ${PYTHON_EXECUTABLE}
ARGS ${prog} ALL
${inFile}
${CMAKE_CURRENT_BINARY_DIR}
COMMAND ${PYTHON_EXECUTABLE}
ARGS ${prog} SQL
${inFile}
${CMAKE_BINARY_DIR}/share/Lts/sql
DEPENDS ${inFile}
${prog}
)
LIST(APPEND ${srcList} ${out_files})
SET_PROPERTY(GLOBAL APPEND PROPERTY CODEGEN_XML_FILES "${inFile}")
ENDMACRO()
MACRO(CODEGEN_CLIENT_TOPICS_IFC srcList xmlFile_in)
SET(options)
SET(oneValueArgs)
SET(multiValueArgs PARTS)
CMAKE_PARSE_ARGUMENTS(_CST "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
IF(NOT _CST_PARTS)
SET(_CST_PARTS "DTC" "FTC")
ENDIF()
SET(in_files "")
SET(out_files "")
FOREACH(part ${_CST_PARTS})
IF(part STREQUAL "DTC")
LIST(APPEND in_files
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dtc.h.grantlee"
)
LIST(APPEND out_files
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dtc.h"
)
IF(NOT POLICY CMP0071)
QT5_WRAP_CPP(${srcList} "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dtc.h")
ENDIF()
ELSEIF(part STREQUAL "FTC")
LIST(APPEND in_files
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_ftc.h.grantlee"
)
LIST(APPEND out_files
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_ftc.h"
)
ELSE()
MESSAGE(FATAL_ERROR "Unkown part argument for CODEGEN_SERVER_TOPICS (${part})")
ENDIF()
ENDFOREACH()
_CODEGEN_ACTION("DDS_TOPICS" ${srcList} "${xmlFile_in}" in_files out_files)
ENDMACRO()
MACRO(CODEGEN_CLIENT_TOPICS_IMPL srcList xmlFile_in)
SET(options)
SET(oneValueArgs)
SET(multiValueArgs PARTS)
CMAKE_PARSE_ARGUMENTS(_CST "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
IF(NOT _CST_PARTS)
SET(_CST_PARTS "DTC" "FTC")
ENDIF()
SET(in_files "")
SET(out_files "")
FOREACH(part ${_CST_PARTS})
IF(part STREQUAL "DTC")
LIST(APPEND in_files
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dtc_impl.h.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dtc_impl.cpp.grantlee"
)
LIST(APPEND out_files
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dtc_impl.h"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dtc_impl.cpp"
)
IF(NOT POLICY CMP0071)
QT5_WRAP_CPP(${srcList} "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dtc_impl.h")
ENDIF()
ELSEIF(part STREQUAL "FTC")
LIST(APPEND in_files
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_ftc_impl.h.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_ftc_impl.cpp.grantlee"
)
LIST(APPEND out_files
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_ftc_impl.h"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_ftc_impl.cpp"
)
IF(NOT POLICY CMP0071)
QT5_WRAP_CPP(${srcList} "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_ftc_impl.h")
ENDIF()
ELSE()
MESSAGE(FATAL_ERROR "Unkown part argument for CODEGEN_SERVER_TOPICS (${part})")
ENDIF()
ENDFOREACH()
_CODEGEN_ACTION("DDS_TOPICS" ${srcList} "${xmlFile_in}" in_files out_files)
ENDMACRO()
MACRO(CODEGEN_SERVER_TOPICS srcList xmlFile_in)
SET(options)
SET(oneValueArgs)
SET(multiValueArgs PARTS)
CMAKE_PARSE_ARGUMENTS(_CST "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
IF(NOT _CST_PARTS)
SET(_CST_PARTS "DTS" "FTS")
ENDIF()
SET(in_files "")
SET(out_files "")
FOREACH(part ${_CST_PARTS})
IF(part STREQUAL "DTS")
LIST(APPEND in_files
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dts.h.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dts_impl.h.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_dts_impl.cpp.grantlee"
)
LIST(APPEND out_files
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dts.h"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dts_impl.h"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_dts_impl.cpp"
)
ELSEIF(part STREQUAL "FTS")
LIST(APPEND in_files
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_fts.h.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_fts_impl.h.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_fts_impl.cpp.grantlee"
)
LIST(APPEND out_files
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_fts.h"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_fts_impl.h"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_fts_impl.cpp"
)
IF(NOT POLICY CMP0071)
QT5_WRAP_CPP(${srcList} ${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_fts_impl.h)
ENDIF()
ELSE()
MESSAGE(FATAL_ERROR "Unkown part argument for CODEGEN_SERVER_TOPICS (${part})")
ENDIF()
ENDFOREACH()
_CODEGEN_ACTION("DDS_TOPICS" ${srcList} "${xmlFile_in}" in_files out_files)
ENDMACRO()
MACRO(CODEGEN_TOPIC_TYPE_PLUGIN srcList xmlFile_in)
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
SET(in_files "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_topic_type_plugin.cpp.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_topic_type_plugin.h.grantlee"
)
SET(out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_topic_type_plugin.cpp"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_topic_type_plugin.h"
)
_CODEGEN_ACTION("DDS_TOPICS" ${srcList} "${xmlFile_in}" in_files out_files)
IF(NOT POLICY CMP0071)
QT5_WRAP_CPP(${srcList} ${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_topic_type_plugin.h)
ENDIF()
ENDMACRO()
MACRO(CREATE_TOPIC_TYPE_PLUGIN xmlFile_in)
SET(_my_srcs "")
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
CODEGEN_TOPIC_TYPE_PLUGIN(_my_srcs ${xml_FILE})
STRING(SUBSTRING ${svcNameOut} 0 1 _ss1)
STRING(SUBSTRING ${svcNameOut} 1 -1 _ss2)
STRING(TOUPPER ${_ss1} _ss1)
SET(_commonLib "svc${_ss1}${_ss2}Common")
IF(svcNameOut STREQUAL "core")
SET(_commonLib ddscore)
ENDIF()
NGL_ADD_LIBRARY(WS AAR SV NO_TRANSLATION ${svcNameOut}TopicTypePlugin MODULE
${_my_srcs}
)
NGL_TARGET_LINK_LIBRARIES(${svcNameOut}TopicTypePlugin
topic_type_plugin
routing_plugin
ddscore
${_commonLib}
)
NGL_INSTALL_TARGET(${svcNameOut}TopicTypePlugin)
ENDMACRO()
MACRO(CODEGEN_RECORD_REPLAY_PLUGIN srcList xmlFile_in)
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
SET(in_files "${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_record_replay_plugin.cpp.grantlee"
"${CMAKE_SOURCE_DIR}/Lts/Common/CodeGen/svc_record_replay_plugin.h.grantlee"
)
SET(out_files "${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_record_replay_plugin.cpp"
"${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_record_replay_plugin.h"
)
_CODEGEN_ACTION("DDS_TOPICS" ${srcList} "${xmlFile_in}" in_files out_files)
IF(NOT POLICY CMP0071)
QT5_WRAP_CPP(${srcList} ${CMAKE_CURRENT_BINARY_DIR}/${svcNameOut}_record_replay_plugin.h)
ENDIF()
ENDMACRO()
MACRO(CREATE_RECORD_REPLAY_PLUGIN_INTERN xmlFile_in svcSourceList libtype)
SET(_my_srcs "")
_GET_SERVICENAME( "${xmlFile_in}" svcNameOut )
CODEGEN_RECORD_REPLAY_PLUGIN(_my_srcs ${xml_FILE})
STRING(SUBSTRING ${svcNameOut} 0 1 _ss1)
STRING(SUBSTRING ${svcNameOut} 1 -1 _ss2)
STRING(TOUPPER ${_ss1} _ss1)
SET(_commonLib "svc${_ss1}${_ss2}Common")
IF(svcNameOut STREQUAL "core")
SET(_commonLib ddscore)
ENDIF()
LIST(APPEND ${svcSourceList} ${_my_srcs})
NGL_ADD_LIBRARY(SV AAR WS ${svcNameOut}RecordReplayPlugin ${libtype}
${_my_srcs}
)
NGL_TARGET_LINK_LIBRARIES(${svcNameOut}RecordReplayPlugin
RecordReplayPlugin
ddscore
ddsconnector
ddsdtc
ngldb
LtsUtilsCore
${_commonLib}
)
NGL_INSTALL_TARGET(${svcNameOut}RecordReplayPlugin)
NGL_TARGET_INCLUDE_DIRECTORIES(${svcNameOut}RecordReplayPlugin
PUBLIC
${CMAKE_CURRENT_SOURCE_DIR}/../
${CMAKE_CURRENT_BINARY_DIR}/../
)
ENDMACRO()
MACRO(CREATE_RECORD_REPLAY_PLUGIN xmlFile_in svcSourceList)
CREATE_RECORD_REPLAY_PLUGIN_INTERN(${xmlFile_in} ${svcSourceList} MODULE)
ENDMACRO()
MACRO(CREATE_RECORD_REPLAY_PLUGIN_SHARED xmlFile_in)
CREATE_RECORD_REPLAY_PLUGIN_INTERN(${xmlFile_in} _unused SHARED)
ENDMACRO()
MACRO(CODEGEN_WRITE_SERVICEFILE_INFO)
GET_PROPERTY(idl_files GLOBAL PROPERTY CODEGEN_IDL_FILES)
LIST(REMOVE_DUPLICATES idl_files)
FILE(WRITE ${CMAKE_BINARY_DIR}/service_idl_files.txt "-- all available service idl files\n")
FOREACH(idl_file ${idl_files})
FILE(APPEND ${CMAKE_BINARY_DIR}/service_idl_files.txt "${idl_file}\n")
ENDFOREACH()
ENDMACRO()
+21
View File
@@ -0,0 +1,21 @@
MACRO (MACRO_ENSURE_OUT_OF_SOURCE_BUILD _errorMessage)
STRING(COMPARE EQUAL "${CMAKE_SOURCE_DIR}" "${CMAKE_BINARY_DIR}" insource)
IF(insource)
MESSAGE(FATAL_ERROR "${_errorMessage}")
ENDIF(insource)
ENDMACRO (MACRO_ENSURE_OUT_OF_SOURCE_BUILD)
+72
View File
@@ -0,0 +1,72 @@
MACRO(RTIDDSGEN srcList infile)
FIND_PACKAGE(RTI REQUIRED)
SET(input ${infile})
IF(NOT IS_ABSOLUTE ${input})
SET(input "${CMAKE_CURRENT_BINARY_DIR}/${input}")
ENDIF()
GET_FILENAME_COMPONENT(output ${infile} NAME_WE)
GET_FILENAME_COMPONENT(input ${input} ABSOLUTE)
SET(_ddsgen_args "")
SET(output_cxx
${CMAKE_CURRENT_BINARY_DIR}/${output}.cxx
${CMAKE_CURRENT_BINARY_DIR}/${output}Plugin.cxx
)
SET(output_hpp
${CMAKE_CURRENT_BINARY_DIR}/${output}.hpp
${CMAKE_CURRENT_BINARY_DIR}/${output}Plugin.hpp
)
ADD_CUSTOM_COMMAND(OUTPUT ${output_cxx} ${output_hpp}
COMMAND ${CMAKE_COMMAND}
ARGS -E remove ${output_cxx}
COMMAND ${RTI_DDSGEN_EXECUTABLE}
ARGS -language "C++11"
ARGS -unboundedSupport
ARGS -verbosity 2
ARGS -update typefiles
ARGS -stl
ARGS -d ${CMAKE_CURRENT_BINARY_DIR}
ARGS -inputIdl ${input}
ARGS -I ${CMAKE_CURRENT_BINARY_DIR}
ARGS -I ${CMAKE_CURRENT_BINARY_DIR}/../
ARGS -I ${CMAKE_CURRENT_BINARY_DIR}/../../
ARGS -I ${CMAKE_CURRENT_SOURCE_DIR}
ARGS -I ${CMAKE_CURRENT_SOURCE_DIR}/../
ARGS -I ${CMAKE_CURRENT_SOURCE_DIR}/../../
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS ${input} ${ARGN}
)
IF(WIN32)
SET_SOURCE_FILES_PROPERTIES(${output_cxx} PROPERTIES COMPILE_FLAGS "-DNDDS_USER_DLL_EXPORT")
ELSE()
SET_SOURCE_FILES_PROPERTIES(${output_cxx} PROPERTIES SKIP_UNITY_BUILD_INCLUSION TRUE)
ENDIF()
LIST(APPEND ${srcList} ${output_cxx} ${output_hpp})
ENDMACRO()
+598
View File
@@ -0,0 +1,598 @@
INCLUDE(GenerateExportHeader)
SET(_default_build OFF)
IF(BUILD_ALL)
SET(_default_build ON)
ENDIF()
OPTION(BUILD_SV "Build and install Server software parts" ${_default_build})
OPTION(BUILD_AAR "Build and install AAR software parts" ${_default_build})
OPTION(BUILD_LTSCC "Build and install LTS CC Conf" OFF)
OPTION(BUILD_HLA "Build and install HLA Server software parts" OFF)
OPTION(BUILD_WS "Build and install Workstation software parts" ${_default_build})
OPTION(BUILD_TOOLSWS "Build and install TOOLS for WS" OFF)
OPTION(BUILD_TOOLSSV "Build and install TOOLS for SV" OFF)
OPTION(BUILD_DEP_TEST_EXECUTABLES "Build executables for created libs to check library dependencies" OFF)
OPTION(BUILD_TS_FILES "Regenerate ts-files for translations" OFF)
OPTION(BUILD_STATIC_LIBRARIES "Build all libraries as static libraries" OFF)
IF(BUILD_STATIC_LIBRARIES)
ADD_DEFINITIONS(-DBUILD_STATIC_LIBRARIES)
ENDIF()
SET(AAR_INSTALL_PATH "AAR")
SET(SV_INSTALL_PATH "SV")
SET(HLA_INSTALL_PATH "SV")
SET(DDS_INSTALL_PATH "SV")
SET(WS_INSTALL_PATH "WS")
SET(TOOLSWS_INSTALL_PATH "WS")
SET(TOOLSSV_INSTALL_PATH "SV")
IF(WIN32)
SET(INSTALL_DEFAULT_ARGS RUNTIME DESTINATION bin
LIBRARY DESTINATION bin
ARCHIVE DESTINATION lib COMPONENT Devel)
ELSE()
SET(INSTALL_DEFAULT_ARGS RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib COMPONENT Devel)
ENDIF()
SET(INSTALL_DEFAULT_ARGS_DEVEL RUNTIME DESTINATION bin COMPONENT Devel
LIBRARY DESTINATION lib COMPONENT Devel
ARCHIVE DESTINATION lib COMPONENT Devel)
SET(_components SV WS AAR TOOLSWS TOOLSSV HLA)
MACRO (NGL_GET_BUILDPARTS _args _buildopts)
SET(${_buildopts} "")
SET(_at_least_one_keyword_found OFF)
LIST(FIND ${_args} "ALL" _all)
IF (_all GREATER -1)
LIST(REMOVE_AT ${_args} ${_all})
SET(_at_least_one_keyword_found ON)
FOREACH(_component ${_components})
IF(BUILD_${_component})
LIST(APPEND ${_buildopts} ${_component})
ENDIF()
ENDFOREACH()
ELSE()
FOREACH(_component ${_components})
LIST(FIND ${_args} "${_component}" _idx)
IF(_idx GREATER -1)
LIST(REMOVE_AT ${_args} ${_idx})
SET(_at_least_one_keyword_found ON)
IF(BUILD_${_component})
LIST(APPEND ${_buildopts} ${_component})
ENDIF()
ENDIF()
ENDFOREACH()
ENDIF()
IF(NOT _at_least_one_keyword_found)
MESSAGE(FATAL_ERROR "No software component keyword (ALL/SV/WS) given!")
ENDIF()
ENDMACRO()
MACRO (NGL_PARSE_BUILDCOMPONENT_INTERNAL _args _properties _build_target)
NGL_GET_BUILDPARTS(${_args} _buildopts)
SET(${_build_target} OFF)
FOREACH(_component ${_components})
LIST(FIND _buildopts ${_component} _idx)
IF(_idx GREATER -1)
LIST(APPEND ${_properties} NGL_INSTALL_${_component} ON)
SET(${_build_target} ON)
ENDIF()
ENDFOREACH()
LIST(FIND ${_args} "NO_TRANSLATION" _no_i18n)
IF (_no_i18n GREATER -1)
LIST(REMOVE_AT ${_args} ${_no_i18n})
LIST(APPEND ${_properties} NO_TRANSLATION ON)
ENDIF ()
ENDMACRO()
MACRO(NGL_ADD_TRANSLATION output_location _qm_file_name _ts_file _qm_files)
GET_FILENAME_COMPONENT(_abs_FILE ${_ts_file} ABSOLUTE)
FILE(MAKE_DIRECTORY "${output_location}")
SET(qm "${output_location}/${_qm_file_name}.qm")
ADD_CUSTOM_COMMAND(OUTPUT ${qm}
COMMAND Qt5::lrelease
ARGS ${_abs_FILE} -qm ${qm}
DEPENDS ${_abs_FILE}
)
SET(${_qm_files} ${${_qm_files}} ${qm})
ENDMACRO()
MACRO (NGL_ADD_LIBRARY)
SET(_args ${ARGN})
IF(BUILD_STATIC_LIBRARIES)
LIST(FIND _args "SHARED" _is_shared)
IF(_is_shared GREATER -1)
LIST(REMOVE_AT _args ${_is_shared})
ENDIF()
ENDIF()
SET(_properties "")
SET(_build_target OFF)
NGL_PARSE_BUILDCOMPONENT_INTERNAL(_args _properties _build_target)
LIST(GET _args 0 _target_NAME)
IF(_build_target)
ADD_LIBRARY(${_args})
SET_TARGET_PROPERTIES(${_target_NAME} PROPERTIES ${_properties})
IF(NOT MSVC AND NOT USE_ASAN AND NOT USE_UBSAN)
SET_PROPERTY(TARGET ${_target_NAME} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--no-undefined")
ENDIF()
STRING(TOUPPER ${_target_NAME} _symbol)
STRING(REGEX REPLACE "[^_A-Za-z0-9]" "_" _symbol ${_symbol})
IF(BUILD_STATIC_LIBRARIES)
SET(_symbol "${_symbol}_EXPORT=")
TARGET_COMPILE_DEFINITIONS(${_target_NAME} PUBLIC ${_symbol})
ELSE()
GET_TARGET_PROPERTY(target_type ${_target_NAME} TYPE)
IF(target_type STREQUAL "SHARED_LIBRARY" OR
target_type STREQUAL "MODULE_LIBRARY")
SET(_symbol "MAKE_${_symbol}_LIB")
TARGET_COMPILE_DEFINITIONS(${_target_NAME} PRIVATE ${_symbol})
ENDIF()
ENDIF()
IF(BUILD_DEP_TEST_EXECUTABLES)
LIST(FIND _args "SHARED" _is_shared)
IF(_is_shared GREATER -1)
LIST(REMOVE_AT _args ${_is_shared})
LIST(REMOVE_ITEM _args "${_target_NAME}")
ADD_EXECUTABLE(${_target_NAME}_dep_test ${NGL_MODULE_DIR}/ngl_dep_test_main.cpp ${_args})
ENDIF()
ENDIF()
SET_PROPERTY(GLOBAL APPEND PROPERTY NGL_TS_TARGETS ${_target_NAME})
ENDIF()
ENDMACRO()
MACRO (NGL_ADD_LIBRARY2)
SET(_args ${ARGN})
IF(BUILD_STATIC_LIBRARIES)
LIST(FIND _args "SHARED" _is_shared)
IF(_is_shared GREATER -1)
LIST(REMOVE_AT _args ${_is_shared})
ENDIF()
ENDIF()
SET(_properties "")
SET(_build_target OFF)
NGL_PARSE_BUILDCOMPONENT_INTERNAL(_args _properties _build_target)
LIST(GET _args 0 _target_NAME)
IF(_build_target)
ADD_LIBRARY(${_args})
SET_TARGET_PROPERTIES(${_target_NAME} PROPERTIES ${_properties})
IF(NOT MSVC AND NOT USE_ASAN AND NOT USE_UBSAN)
SET_PROPERTY(TARGET ${_target_NAME} APPEND_STRING PROPERTY LINK_FLAGS " -Wl,--no-undefined")
ENDIF()
TARGET_INCLUDE_DIRECTORIES(${_target_NAME}
PUBLIC
${CMAKE_CURRENT_BINARY_DIR}/../
)
GET_PROPERTY(type TARGET ${_target_NAME} PROPERTY TYPE)
IF(NOT ${type} STREQUAL "STATIC_LIBRARY")
NGL_INSTALL_TARGET(${_target_NAME})
ENDIF()
IF(${type} STREQUAL "SHARED_LIBRARY" OR ${type} STREQUAL "MODULE_LIBRARY")
GENERATE_EXPORT_HEADER(${_target_NAME})
ENDIF()
IF(BUILD_DEP_TEST_EXECUTABLES)
IF(${type} STREQUAL "SHARED_LIBRARY")
LIST(REMOVE_ITEM _args "SHARED")
LIST(REMOVE_ITEM _args "${_target_NAME}")
ADD_EXECUTABLE(${_target_NAME}_dep_test ${NGL_MODULE_DIR}/ngl_dep_test_main.cpp ${_args})
ENDIF()
ENDIF()
SET_PROPERTY(GLOBAL APPEND PROPERTY NGL_TS_TARGETS ${_target_NAME})
ENDIF()
ENDMACRO()
MACRO (NGL_ADD_EXECUTABLE)
SET(_args ${ARGN})
SET(_properties "")
SET(_build_target OFF)
NGL_PARSE_BUILDCOMPONENT_INTERNAL(_args _properties _build_target)
LIST(GET _args 0 _target_NAME)
IF(_build_target)
ADD_EXECUTABLE(${_args})
SET_TARGET_PROPERTIES(${_target_NAME} PROPERTIES ${_properties})
SET_PROPERTY(GLOBAL APPEND PROPERTY NGL_TS_TARGETS ${_target_NAME})
ENDIF()
ENDMACRO()
MACRO(NGL_TARGET_INCLUDE_DIRECTORIES _target_NAME)
IF(TARGET ${_target_NAME})
TARGET_INCLUDE_DIRECTORIES(${_target_NAME} ${ARGN})
ENDIF()
ENDMACRO()
MACRO(NGL_TARGET_LINK_LIBRARIES _target_NAME)
IF(TARGET ${_target_NAME})
TARGET_LINK_LIBRARIES(${_target_NAME} ${ARGN})
IF(BUILD_DEP_TEST_EXECUTABLES)
GET_TARGET_PROPERTY(_type ${_target_NAME} TYPE)
IF("${_type}" STREQUAL "SHARED_LIBRARY")
TARGET_LINK_LIBRARIES(${_target_NAME}_dep_test ${ARGN} ${_target_NAME})
ENDIF()
ENDIF()
ENDIF()
ENDMACRO()
MACRO(NGL_ADD_INSTALL_PREFIX_INTERNAL _args prefix)
LIST(LENGTH ${_args} len)
SET(_ret_args "")
SET(_replace_next OFF)
FOREACH( _arg ${${_args}})
IF(${_arg} STREQUAL "DESTINATION")
SET(_replace_next ON)
LIST(APPEND _ret_args ${_arg})
ELSE()
IF(_replace_next)
LIST(APPEND _ret_args "${prefix}/${_arg}")
SET(_replace_next OFF)
ELSE()
LIST(APPEND _ret_args ${_arg})
ENDIF()
ENDIF()
ENDFOREACH()
SET(${_args} ${_ret_args})
ENDMACRO()
MACRO(_NGL_INSTALL_TARGET_internal _target_NAME)
SET(_args ${ARGN})
IF(TARGET ${_target_NAME})
FOREACH(_component ${_components})
GET_TARGET_PROPERTY(_install_component ${_target_NAME} NGL_INSTALL_${_component})
IF(_install_component)
SET(_my_args ${_args})
NGL_ADD_INSTALL_PREFIX_INTERNAL(_my_args ${${_component}_INSTALL_PATH})
INSTALL(TARGETS ${_target_NAME} ${_my_args})
ENDIF()
ENDFOREACH()
ENDIF()
ENDMACRO()
MACRO(NGL_INSTALL_TARGET _target_NAME)
SET(_args ${ARGN})
LIST(LENGTH _args len)
IF(${len} EQUAL 0)
SET(_args ${INSTALL_DEFAULT_ARGS})
ENDIF()
_NGL_INSTALL_TARGET_internal(${_target_NAME} ${_args})
ENDMACRO()
MACRO(NGL_INSTALL_TARGET_DEVEL _target_NAME)
IF (NOT BUILD_RPM)
SET(_args ${ARGN})
LIST(LENGTH _args len)
IF(${len} EQUAL 0)
SET(_args ${INSTALL_DEFAULT_ARGS_DEVEL})
ENDIF()
_NGL_INSTALL_TARGET_internal(${_target_NAME} ${_args})
ENDIF()
ENDMACRO()
MACRO(NGL_INSTALL)
SET(_args ${ARGN})
NGL_GET_BUILDPARTS(_args _buildopts)
FOREACH(_component ${_components})
LIST(FIND _buildopts ${_component} _idx)
IF(_idx GREATER -1)
SET(_my_args ${_args})
NGL_ADD_INSTALL_PREFIX_INTERNAL(_my_args ${${_component}_INSTALL_PATH})
INSTALL(${_my_args})
ENDIF()
ENDFOREACH()
ENDMACRO()
MACRO(NGL_SET_TARGET_PROPERTIES _target_NAME)
IF(TARGET ${_target_NAME})
SET_TARGET_PROPERTIES(${_target_NAME} ${ARGN})
ENDIF()
ENDMACRO()
MACRO(NGL_TARGET_COMPILE_DEFINITIONS _target_NAME)
IF(TARGET ${_target_NAME})
TARGET_COMPILE_DEFINITIONS(${_target_NAME} ${ARGN})
ENDIF()
ENDMACRO()
MACRO(NGL_ADD_COMPILE_FLAGS _target_NAME _property_value)
IF(TARGET ${_target_NAME})
SET_PROPERTY(TARGET ${_target_NAME} APPEND_STRING PROPERTY COMPILE_FLAGS " ${_property_value}")
ENDIF()
ENDMACRO()
MACRO(NGL_ADD_TEST)
IF(TARGET ${_target_NAME})
ADD_TEST(${_target_NAME} ${ARGN})
ENDIF()
ENDMACRO()
MACRO(NGL_CREATE_ASSISTANT_HELP type target_name language)
SET(_QHP_FILE_SRC "${CMAKE_CURRENT_SOURCE_DIR}/${language}.qhp")
SET(_QHP_FILE_BLD "${CMAKE_CURRENT_BINARY_DIR}/${language}/${language}.qhp")
SET(_QCH_FILE "${CMAKE_CURRENT_BINARY_DIR}/${language}/${language}.qch")
SET(_QHCP_FILE_SRC "${CMAKE_CURRENT_SOURCE_DIR}/${language}.qhcp")
SET(_QHCP_FILE_BLD "${CMAKE_CURRENT_BINARY_DIR}/${language}/${language}.qhcp")
SET(_QHC_FILE "${CMAKE_CURRENT_BINARY_DIR}/${language}/${language}.qhc")
SET(_file_list ${ARGN})
SET(_command_qhg qhelpgenerator-qt5)
SET(_command_qcg qcollectiongenerator-qt5)
ADD_CUSTOM_COMMAND(DEPENDS ${_file_list} ${_QHP_FILE_SRC} ${_QHCP_FILE_SRC}
COMMAND ${NGL_MODULE_DIR}/make_qt_help.py
ARGS ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}/${language} ${language} ${_file_list}
COMMAND ${_command_qhg}
ARGS ${_QHP_FILE_BLD} -o ${_QCH_FILE}
COMMAND ${_command_qcg}
ARGS "${_QHCP_FILE_BLD}" -o "${_QHC_FILE}"
COMMAND ${CMAKE_COMMAND}
ARGS -E touch ${CMAKE_CURRENT_BINARY_DIR}/${language}_qch_dummy.c
OUTPUT "${_QHC_FILE}"
"${_QHCP_FILE_BLD}"
"${_QHP_FILE_BLD}"
"${_QCH_FILE}"
"${CMAKE_CURRENT_BINARY_DIR}/${language}_qch_dummy.c"
WORKING_DIRECTORY ${CMAKE_CURRENT_BUILD_DIR}
COMMENT "Generating Qt assistant help for language ${language}"
)
NGL_ADD_LIBRARY(${type} "${type}_${target_name}_${language}_qch_dummy" "${language}_qch_dummy")
NGL_INSTALL(${type} FILES "${_QCH_FILE}" "${_QHC_FILE}" DESTINATION help/${target_name}/)
ENDMACRO()
MACRO(NGL_ADD_TARGET_LINK targetName targetAbbr)
IF(TARGET ${targetName})
IF(NOT WIN32)
SET(cmake_operation create_symlink)
IF(WIN32)
SET(cmake_operation copy)
ENDIF(WIN32)
ADD_CUSTOM_COMMAND(TARGET ${targetName} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E remove -f ${targetAbbr}
COMMAND ${CMAKE_COMMAND} -E ${cmake_operation} ${targetName} ${targetAbbr}
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}/bin
)
ENDIF()
ENDIF()
ENDMACRO()
MACRO(ADD_INTERFACE_LIBRARY name_ header_ inc_path_)
SET(link_libs_ ${ARGN})
ADD_LIBRARY(${name_} INTERFACE)
TARGET_INCLUDE_DIRECTORIES(${name_}
INTERFACE
${inc_path_}
)
FOREACH(link_lib_ ${link_libs_})
TARGET_LINK_LIBRARIES(${name_}
INTERFACE
${link_lib_}
)
ENDFOREACH()
TARGET_SOURCES(${name_} INTERFACE ${header_})
ENDMACRO()
macro(NGL_COMPILE_RESOURCES output_qrc_objects)
get_property(ipo_active VARIABLE PROPERTY CMAKE_INTERPROCEDURAL_OPTIMIZATION)
if(CMAKE_VERSION VERSION_GREATER 3.8.99 AND Qt5Core_VERSION VERSION_GREATER 5.12.99 AND NOT WIN32 AND NOT ipo_active)
set(_QT5_INTERNAL_SCOPE ON)
set(options)
set(oneValueArgs)
set(multiValueArgs OPTIONS)
cmake_parse_arguments(_NGL_COMPILE_RESOURCES "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
set(qrc_files ${_NGL_COMPILE_RESOURCES_UNPARSED_ARGUMENTS})
set(rcc_options ${_NGL_COMPILE_RESOURCES_OPTIONS})
foreach(qrc_file ${qrc_files})
get_filename_component(qrc_object_file ${qrc_file} NAME_WE)
get_filename_component(qrc_filename ${qrc_file} ABSOLUTE)
set(qrc_header_file ${CMAKE_CURRENT_BINARY_DIR}/qrc_${qrc_object_file}_header.cpp)
set(qrc_object ${CMAKE_CURRENT_BINARY_DIR}/qrc_${qrc_object_file}.o)
_qt5_parse_qrc_file(${qrc_filename} _out_depends _rc_depends)
set_source_files_properties(${qrc_filename} PROPERTIES SKIP_AUTORCC ON)
add_custom_command(OUTPUT ${qrc_header_file}
COMMAND echo ">>> 1: Regenerating ${qrc_header_file}"
COMMAND ${Qt5Core_RCC_EXECUTABLE} ${rcc_options} --name ${qrc_object_file} --pass 1 --output ${qrc_header_file} ${qrc_filename}
DEPENDS ${qrc_filename} ${_rc_depends} "${_out_depends}"
VERBATIM)
add_custom_target(resources_${qrc_object_file} ALL DEPENDS ${qrc_header_file})
add_library(qrc_object_${qrc_object_file} OBJECT ${qrc_header_file})
add_dependencies(qrc_object_${qrc_object_file} resources_${qrc_object_file})
set_target_properties(qrc_object_${qrc_object_file} PROPERTIES AUTOMOC OFF)
set_target_properties(qrc_object_${qrc_object_file} PROPERTIES AUTOUIC OFF)
add_custom_command(OUTPUT ${qrc_object}
COMMAND echo ">>> 2: Regenerating ${qrc_object} with $<TARGET_OBJECTS:qrc_object_${qrc_object_file}>"
COMMAND ${Qt5Core_RCC_EXECUTABLE}
ARGS ${rcc_options} --name ${qrc_object_file} --pass 2 --temp $<TARGET_OBJECTS:qrc_object_${qrc_object_file}> --output ${qrc_object} ${qrc_filename}
DEPENDS qrc_object_${qrc_object_file} ${qrc_filename} ${qrc_header_file}
VERBATIM)
list(APPEND ${output_qrc_objects} ${qrc_object})
endforeach()
else()
QT5_ADD_RESOURCES(${output_qrc_objects} ${ARGN})
endif()
endmacro()
MACRO(NGL_ADD_BIG_RESOURCES)
GET_PROPERTY(ipo_active VARIABLE PROPERTY CMAKE_INTERPROCEDURAL_OPTIMIZATION)
IF(CMAKE_VERSION VERSION_GREATER 3.8.99 AND Qt5Core_VERSION VERSION_GREATER 5.12.99 AND NOT WIN32 AND NOT ipo_active)
QT5_ADD_BIG_RESOURCES(${ARGN})
ELSE()
QT5_ADD_RESOURCES(${ARGN})
ENDIF()
ENDMACRO()
MACRO(NGL_WRAP_UI)
QT5_WRAP_UI(${ARGN})
ENDMACRO()
MACRO(NGL_ADD_APP_ICON_INTERNAL _srcs icon)
IF(WIN32)
SET(_rc_file ${CMAKE_CURRENT_BINARY_DIR}/${target}_icon.rc)
FILE(WRITE ${_rc_file} "IDI_ICON1 ICON DISCARDABLE \"${icon}\"\n")
LIST(APPEND ${target} ${_rc_file})
SET_SOURCE_FILES_PROPERTIES(${_rc_file} PROPERTIES OBJECT_DEPENDS ${icon})
LIST(APPEND ${_srcs} ${_rc_file})
ENDIF()
ENDMACRO()
MACRO(NGL_ADD_APP_ICON target)
NGL_ADD_APP_ICON_INTERNAL(${target} "${CMAKE_SOURCE_DIR}/Lts/Common/LtsWidgets/resources/rde_icon_256.ico")
ENDMACRO()
MACRO(NGL_ADD_SVC_ICON target)
NGL_ADD_APP_ICON_INTERNAL(${target} "${CMAKE_SOURCE_DIR}/Lts/Common/LtsWidgets/resources/rde_icon_256.ico")
ENDMACRO()
MACRO(NGL_ADD_TOOL_ICON target)
SET(_args ${ARGN})
LIST(LENGTH _args len)
SET(_ico "rde_logo.ico")
IF (len EQUAL 1)
LIST(GET _args 0 _tool)
SET(_ico "rde_internal_${_tool}_logo_256x256.ico")
ENDIF()
NGL_ADD_APP_ICON_INTERNAL(${target} "${CMAKE_SOURCE_DIR}/Lts/Common/LtsWidgets/resources/${_ico}")
ENDMACRO()
macro(NGL_TEST_APPS_JSON target)
if(NOT BUILD_RPM AND TARGET ${target})
add_custom_command(
TARGET ${target}
PRE_BUILD
COMMAND $<TARGET_FILE:LtsAppDescriptorChecker>
ARGS ${CMAKE_CURRENT_SOURCE_DIR} resources/apps.json
VERBATIM)
if(jsonschema)
add_custom_command(
TARGET ${target}
POST_BUILD
COMMAND jsonschema
ARGS -i ${CMAKE_CURRENT_SOURCE_DIR}/resources/apps.json ${CMAKE_CURRENT_SOURCE_DIR}/../apps.schema.json
VERBATIM)
endif()
endif()
endmacro()
+186
View File
@@ -0,0 +1,186 @@
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
import shutil
import sys
import sgmllib
class MyParser(sgmllib.SGMLParser):
"A simple parser class."
def __init__(self, verbose=0):
"Initialise an object, passing 'verbose' to the superclass."
sgmllib.SGMLParser.__init__(self, verbose)
self.hyperlinks = []
self.descriptions = []
self.depths = []
self.inside_a_element = 0
self.inside_li_element = 0
self.current_description = ""
self.current_hyperlink = ""
self.current_ul_depth = 0
self.current_li_data = ""
def parse(self, string):
"Parse the given string 'string'."
self.feed(string)
self.close()
def start_a(self, attributes):
"Process a hyperlink and its 'attributes'."
self.current_hyperlink = ""
self.current_description = ""
self.inside_a_element = 1
for name, value in attributes:
if name == "href":
self.current_hyperlink = value
def end_a(self):
"Record the end of a hyperlink"
self.inside_a_element = 0
def start_ul(self, attributes):
"<ul>"
self.current_ul_depth += 1
def end_ul(self):
"</ul>"
self.current_ul_depth -= 1
def start_li(self, attributes):
"<li>"
self.inside_li_element = 1
self.current_description = ""
self.current_hyperlink = ""
def end_li(self):
"</li>"
self.inside_li_element = 0
if len(self.current_description) == 0:
self.descriptions.append(self.current_li_data)
self.hyperlinks.append(self.current_hyperlink)
self.depths.append(self.current_ul_depth)
def handle_data(self, data):
"Handle the textual 'data'"
if self.inside_a_element:
self.descriptions.append(data)
self.hyperlinks.append(self.current_hyperlink)
self.depths.append(self.current_ul_depth)
self.current_description = data
if self.inside_li_element:
self.current_li_data = data
def get_xml(self, spacecount, prefix):
"return the structure as xml"
ret = ""
basespaces = ' ' * spacecount
for i, val in enumerate( self.descriptions ):
depth = self.depths[i]
nextdepth = self.depths[0]
if i != len(self.descriptions) - 1:
nextdepth = self.depths[i+1]
end = '/>'
if depth < nextdepth:
end = '>'
ref = ""
if len(self.hyperlinks[i]) > 0:
ref += ' ref="%s/%s"' % ( prefix, self.hyperlinks[i] )
spaces = basespaces + ' ' * depth
ret += '%s<section title="%s"%s%s\n' % ( spaces, val, ref, end )
while depth > nextdepth:
spaces = basespaces + ' ' * (depth - 1)
ret += '%s</section>\n' % spaces
depth -= 1
return ret
def removeDir(dirname):
"remove dir 'dirname' and all it's subdirectories"
for name in os.listdir(dirname):
filename = os.path.join(dirname, name)
if not os.path.islink(filename) and os.path.isdir(filename):
removeDir(filename)
else:
os.remove(filename)
os.rmdir(dirname)
return
def main():
if len(sys.argv) < 4:
print >> sys.stderr, "To few arguments: %s <srcdir> <builddir> <lang> [<list of files to copy>]" % sys.argv[0]
sys.exit(1)
srcdir = sys.argv[1]
blddir = sys.argv[2]
lang = sys.argv[3]
files = sys.argv[4:]
files.sort()
if os.path.exists( blddir ):
removeDir( blddir )
os.makedirs( blddir )
menu_toc = ''
files_string = ''
for filename in files:
files_string += '<file>%s</file>\n' % filename
if filename.endswith( 'menu.html' ):
try:
f = open( os.path.join( srcdir, filename ), 'r' )
except IOError:
continue
parser = MyParser()
parser.parse( f.read() )
menu_toc = parser.get_xml(13, lang)
qhp_file_src = os.path.join( srcdir, lang + '.qhp' )
qhp_file_bld = os.path.join( blddir, lang + '.qhp' )
infile = open( qhp_file_src, "r" )
outfile = open( qhp_file_bld, "w" )
for line in infile:
line = line.replace( "@FILES@", files_string ).replace( "@MENU_TOC@", menu_toc )
outfile.write(line)
infile.close()
outfile.close()
qhcp_file_src = os.path.join( srcdir, lang + '.qhcp' )
qhcp_file_bld = os.path.join( blddir, lang + '.qhcp' )
shutil.copy( qhcp_file_src, qhcp_file_bld )
for filename in files:
src = os.path.join( srcdir, filename )
dst = os.path.join( blddir, filename )
if not os.path.exists( src ):
print >> sys.stderr, "Source file %s does not exist - skipping" % src
continue
if ( os.path.exists( dst ) and os.path.isfile( dst ) ) and\
( os.path.getsize( src ) == os.path.getsize( dst ) ) and\
( os.stat( src ).st_mtime <= os.stat( dst ).st_mtime ):
continue
dstdir = os.path.dirname( dst )
if not os.path.isdir( dstdir ):
if os.path.exists( dstdir ):
os.remove( dstdir )
os.makedirs( dstdir )
shutil.copy( src, dst )
if __name__ == "__main__":
main()
+5
View File
@@ -0,0 +1,5 @@
int main(int, char**)
{
return 0;
}