# # Copyright 1993-2019 NVIDIA Corporation. All rights reserved. # # NOTICE TO LICENSEE: # # This source code and/or documentation ("Licensed Deliverables") are # subject to NVIDIA intellectual property rights under U.S. and # international Copyright laws. # # These Licensed Deliverables contained herein is PROPRIETARY and # CONFIDENTIAL to NVIDIA and is being provided under the terms and # conditions of a form of NVIDIA software license agreement by and # between NVIDIA and Licensee ("License Agreement") or electronically # accepted by Licensee. Notwithstanding any terms or conditions to # the contrary in the License Agreement, reproduction or disclosure # of the Licensed Deliverables to any third party without the express # written consent of NVIDIA is prohibited. # # NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE # LICENSE AGREEMENT, NVIDIA MAKES NO REPRESENTATION ABOUT THE # SUITABILITY OF THESE LICENSED DELIVERABLES FOR ANY PURPOSE. IT IS # PROVIDED "AS IS" WITHOUT EXPRESS OR IMPLIED WARRANTY OF ANY KIND. # NVIDIA DISCLAIMS ALL WARRANTIES WITH REGARD TO THESE LICENSED # DELIVERABLES, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY, # NONINFRINGEMENT, AND FITNESS FOR A PARTICULAR PURPOSE. # NOTWITHSTANDING ANY TERMS OR CONDITIONS TO THE CONTRARY IN THE # LICENSE AGREEMENT, IN NO EVENT SHALL NVIDIA BE LIABLE FOR ANY # SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES, OR ANY # DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, # WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS # ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE # OF THESE LICENSED DELIVERABLES. # # U.S. Government End Users. These Licensed Deliverables are a # "commercial item" as that term is defined at 48 C.F.R. 2.101 (OCT # 1995), consisting of "commercial computer software" and "commercial # computer software documentation" as such terms are used in 48 # C.F.R. 12.212 (SEPT 1995) and is provided to the U.S. Government # only as a commercial end item. Consistent with 48 C.F.R.12.212 and # 48 C.F.R. 227.7202-1 through 227.7202-4 (JUNE 1995), all # U.S. Government End Users acquire the Licensed Deliverables with # only those rights set forth herein. # # Any use of the Licensed Deliverables in individual and commercial # software must include, in the user documentation and internal # comments to the code, the above Disclaimer and U.S. Government End # Users Notice. # ############################# GENERATE C++ PROTO FILES ################################### protobuf_generate_cpp(UFF_PROTO_SRC UFF_PROTO_HDR proto/uff.proto) add_custom_target(uff_proto DEPENDS ${UFF_PROTO_SRC} ${UFF_PROTO_HDR} ) ################################ BUILD UFF PARSER ######################################## add_custom_target(uffparser) set(TARGET_NAME zooxuffparser) set(SHARED_TARGET ${TARGET_NAME}) set(STATIC_TARGET ${TARGET_NAME}_static) ################################# DEFINE SOURCES ######################################## include(UffParserSources.txt) ######################################################################################### ################################## SHARED LIBRARY ####################################### add_library(${SHARED_TARGET} SHARED ${UFF_PARSER_SRCS} ) add_dependencies(${SHARED_TARGET} uff_proto) target_include_directories(${SHARED_TARGET} PUBLIC ${PROJECT_SOURCE_DIR}/include PRIVATE . PRIVATE uffParser PRIVATE descriptorOperator PRIVATE constant PRIVATE ../common PRIVATE ${Protobuf_INCLUDE_DIR} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/proto ) set_target_properties(${SHARED_TARGET} PROPERTIES CXX_STANDARD 11 CXX_STANDARD_REQUIRED YES CXX_EXTENSIONS NO ARCHIVE_OUTPUT_DIRECTORY "${TRT_BIN_DIR}" LIBRARY_OUTPUT_DIRECTORY "${TRT_BIN_DIR}" RUNTIME_OUTPUT_DIRECTORY "${TRT_BIN_DIR}" ) target_link_libraries(${SHARED_TARGET} ${Protobuf_LIBRARY} ) # modify google namespace to avoid namespace collision. set(GOOGLE "google_private") target_compile_definitions(${SHARED_TARGET} PRIVATE "-Dgoogle=${GOOGLE}" "-DGOOGLE_PROTOBUF_ARCH_64_BIT" ) set_target_properties(${SHARED_TARGET} PROPERTIES DEBUG_POSTFIX ${TRT_DEBUG_POSTFIX}) set_target_properties(${SHARED_TARGET} PROPERTIES VERSION ${TRT_VERSION} SOVERSION ${TRT_SOVERSION} ) set_property(TARGET ${SHARED_TARGET} PROPERTY CUDA_STANDARD 11) # ################################## STATIC LIBRARY ####################################### add_library(${STATIC_TARGET} STATIC ${UFF_PARSER_SRCS} ) add_dependencies(${STATIC_TARGET} uff_proto) target_include_directories(${STATIC_TARGET} PUBLIC ${PROJECT_SOURCE_DIR}/include PRIVATE . PRIVATE uffParser PRIVATE descriptorOperator PRIVATE constant PRIVATE ../common PRIVATE ${Protobuf_INCLUDE_DIR} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/proto ) set_target_properties(${STATIC_TARGET} PROPERTIES CXX_STANDARD 11 CXX_STANDARD_REQUIRED YES CXX_EXTENSIONS NO ARCHIVE_OUTPUT_DIRECTORY "${TRT_BIN_DIR}" LIBRARY_OUTPUT_DIRECTORY "${TRT_BIN_DIR}" RUNTIME_OUTPUT_DIRECTORY "${TRT_BIN_DIR}" ) target_link_libraries(${STATIC_TARGET} ${Protobuf_LIBRARY} ) # modify google namespace to avoid namespace collision. set(GOOGLE google_private) target_compile_definitions(${STATIC_TARGET} PRIVATE "-Dgoogle=${GOOGLE}" "-DGOOGLE_PROTOBUF_ARCH_64_BIT" ) set_target_properties(${STATIC_TARGET} PROPERTIES DEBUG_POSTFIX ${TRT_DEBUG_POSTFIX}) set_target_properties(${STATIC_TARGET} PROPERTIES VERSION ${TRT_VERSION} SOVERSION ${TRT_SOVERSION} ) set_property(TARGET ${STATIC_TARGET} PROPERTY CUDA_STANDARD 11) # ######################################################################################### add_dependencies(uffparser ${SHARED_TARGET} ${STATIC_TARGET})