Initial commit
This commit is contained in:
commit
b7d90b9afe
16245 files changed
+3396666
No files matched your search
Executable
+81
@@ -0,0 +1,81 @@
|
||||
# -------------------------------------------------------------------------
|
||||
# $HeadURL$
|
||||
# -------------------------------------------------------------------------
|
||||
#!
|
||||
# -------------------------------------------------------------------------
|
||||
# COPYRIGHT (C) 2008: RHEINMETALL DEFENCE ELECTRONICS GmbH, D-28305 BREMEN
|
||||
# -------------------------------------------------------------------------
|
||||
#
|
||||
# HIER/ITEM : CSU: RP 5187 P 0211 SRC 14001
|
||||
# BRIEF DESC: CMake-Findskript
|
||||
# AUTHOR : RDE / SGS
|
||||
# ORIGIN REF: BWB / Projekt GUEZ-HAS
|
||||
#
|
||||
# Revision INFO:
|
||||
# --------------
|
||||
# $Revision$
|
||||
# $Date$
|
||||
# $Id$
|
||||
#
|
||||
# LANGUAGE: -
|
||||
#
|
||||
# PURPOSE:
|
||||
# --------
|
||||
# Suchen der Google Protobuf-Library und Setzen der folgenden CMake-Variablen:
|
||||
# XSD_INCLUDE_DIR - XSD headers location
|
||||
# XSD_COMPILE - XSD compile to generate cc/h from .proto
|
||||
# XSD_FOUND - TRUE wenn Library gefunden wurde
|
||||
#
|
||||
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)
|
||||
# NAME_WE funktioniert nicht wegen 1.0.0.xsd
|
||||
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)
|
||||
Reference in new issue
Block a user