Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Firefox/third_party/content_analysis_sdk/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 10.2.2025 mit Größe 6 kB image not shown  

Quelle  CMakeLists.txt   Sprache: Text

 
# Copyright 2022 The Chromium Authors.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
cmake_minimum_required(VERSION 3.22)

project(chrome_enterprise_connector_local_analysis)

# Ensure a C++14 compiler is used.
set(CMAKE_CXX_STANDARD 14)

# Determine the operating system being targeted.
if(CMAKE_SYSTEM_NAME STREQUAL "Windows")
  set(WIN TRUE)
  set(MAC FALSE)
  set(LINUX FALSE)
elseif(CMAKE_SYSTEM_NAME STREQUAL "Darwin")
  set(WIN FALSE)
  set(MAC TRUE)
  set(LINUX FALSE)
else()
  set(WIN FALSE)
  set(MAC FALSE)
  set(LINUX TRUE)
endif()

# Set the path to the protoc protobuf compiler.
if(WIN)
  set(PROTOC ${PROJECT_BINARY_DIR}/vcpkg/installed/x64-windows/tools/protobuf/protoc.exe)
elseif(MAC)
  set(PROTOC ${PROJECT_BINARY_DIR}/vcpkg/installed/x64-osx/tools/protobuf/protoc)
elseif(LINUX)
  set(PROTOC ${PROJECT_BINARY_DIR}/vcpkg/installed/x64-linux/tools/protobuf/protoc)
endif()

# Calls the protoc compiler using the arguments specific to this project.
# protobuf_generate_cpp is not flexible enough for our needs.
add_custom_command(
  OUTPUT ${PROJECT_BINARY_DIR}/gen/content_analysis/sdk/analysis.pb.cc
  COMMAND
    ${PROTOC}
    --cpp_out=${PROJECT_BINARY_DIR}/gen
    --proto_path=${PROJECT_SOURCE_DIR}/proto
    ${PROJECT_SOURCE_DIR}/proto/content_analysis/sdk/analysis.proto
  DEPENDS ./proto/content_analysis/sdk/analysis.proto
  WORKING_DIRECTORY ${PROJECT_BINARY_DIR}
)
# Define proto target. Compile this target exclusively by calling:
# `cmake --build <build_dir> --target proto`
add_custom_target(proto
  ALL
  DEPENDS
  ${PROJECT_BINARY_DIR}/gen/content_analysis/sdk/analysis.pb.cc
)

# The include directory contains the header files needed by the demo code.
# The gen directory contains generated protobuf headers describing the request
# and response objects used to communicate with Google Chrome.
set(AGENT_INCLUDES
  ./agent/include
  .
  ${PROJECT_BINARY_DIR}/gen
)
set(BROWSER_INCLUDES
  ./browser/include
  .
  ${PROJECT_BINARY_DIR}/gen
)

# The SDK contains platform specific code for each of the supported platforms.
# ${PLATFORM_AGENT_CODE} holds the list of source files needed for the current
# platform being built.
if(WIN)
  set(PLATFORM_AGENT_CODE
    ./agent/src/agent_utils_win.cc
    ./agent/src/agent_utils_win.h
    ./agent/src/agent_win.cc
    ./agent/src/agent_win.h
    ./agent/src/event_win.cc
    ./agent/src/event_win.h
    ./agent/src/scoped_print_handle_win.cc
    ./agent/src/scoped_print_handle_win.h
    ./common/utils_win.cc
    ./common/utils_win.h
  )
  set(PLATFORM_TEST_CODE
    ./agent/src/agent_win_unittest.cc
    ./agent/src/event_win_unittest.cc
  )
elseif(MAC)
  set(PLATFORM_AGENT_CODE
    ./agent/src/agent_mac.cc
    ./agent/src/agent_mac.h
    ./agent/src/event_mac.cc
    ./agent/src/event_mac.h
    ./agent/src/scoped_print_handle_mac.cc
    ./agent/src/scoped_print_handle_mac.h
  )
  set(PLATFORM_TEST_CODE
    ./agent/src/event_mac_unittest.cc
  )
elseif(LINUX)
  set(PLATFORM_AGENT_CODE
    ./agent/src/agent_posix.cc
    ./agent/src/agent_posix.h
    ./agent/src/event_posix.cc
    ./agent/src/event_posix.h
    ./agent/src/scoped_print_handle_posix.cc
    ./agent/src/scoped_print_handle_posix.h
  )
  set(PLATFORM_TEST_CODE
    ./agent/src/event_posix_unittest.cc
  )
endif()

# The SDK contains platform specific code for each of the supported platforms.
# ${PLATFORM_BROWSER_CODE} holds the list of source files needed for the current
# platform being built.
if(WIN)
  set(PLATFORM_BROWSER_CODE
    ./browser/src/client_win.cc
    ./browser/src/client_win.h
    ./common/utils_win.cc
    ./common/utils_win.h
  )
elseif(MAC)
  set(PLATFORM_BROWSER_CODE
    ./browser/src/client_mac.cc
    ./browser/src/client_mac.h
  )
elseif(LINUX)
  set(PLATFORM_BROWSER_CODE
    ./browser/src/client_posix.cc
    ./browser/src/client_posix.h
  )
endif()

# Makes available the package definitions in vcpkg.
include("${PROJECT_BINARY_DIR}/vcpkg/scripts/buildsystems/vcpkg.cmake")
find_package(Protobuf CONFIG REQUIRED)
# Unit tests
enable_testing()
find_package(GTest CONFIG REQUIRED)
include(GoogleTest)

add_executable(unit_tests
  ${PLATFORM_TEST_CODE}
)
set_property(TARGET unit_tests PROPERTY CXX_STANDARD 20)
target_include_directories(unit_tests
  PRIVATE
  ${AGENT_INCLUDES}
  ${BROWSER_INCLUDES}
)
target_link_libraries(unit_tests
  PUBLIC 
  cac_agent
  cac_browser
  GTest::gtest GTest::gtest_main
)

gtest_discover_tests(unit_tests) 

# Builds the content analysis connector agent linker library.  This library
# is linked into the agent in order to listen for and process content analysis
# requests from Google Chrome.
add_library(cac_agent
  ./agent/include/content_analysis/sdk/analysis_agent.h
  ./agent/include/content_analysis/sdk/result_codes.h
  ./agent/src/agent_base.cc
  ./agent/src/agent_base.h
  ./agent/src/event_base.cc
  ./agent/src/event_base.h
  ./agent/src/scoped_print_handle_base.cc
  ./agent/src/scoped_print_handle_base.h
  ${PLATFORM_AGENT_CODE}
  ${PROJECT_BINARY_DIR}/gen/content_analysis/sdk/analysis.pb.cc
)
target_link_libraries(cac_agent
  PUBLIC
  protobuf::libprotoc
  protobuf::libprotobuf
  protobuf::libprotobuf-lite)
target_include_directories(cac_agent PRIVATE ${AGENT_INCLUDES})
# Builds the content analysis connector browser linker library.  This library
# is linked into the client in order to send content analysis requests to the
# agent.
add_library(cac_browser
  ./browser/include/content_analysis/sdk/analysis_client.h
  ./browser/src/client_base.cc
  ./browser/src/client_base.h
  ${PLATFORM_BROWSER_CODE}
  ${PROJECT_BINARY_DIR}/gen/content_analysis/sdk/analysis.pb.cc
)
target_include_directories(cac_browser PRIVATE ${BROWSER_INCLUDES})
target_link_libraries(cac_browser
  PUBLIC
  protobuf::libprotoc
  protobuf::libprotobuf
  protobuf::libprotobuf-lite)

# The demo agent executable.
add_executable(agent
  ./demo/agent.cc
  ./demo/handler.h
)
target_compile_features(agent PRIVATE cxx_std_17)
target_include_directories(agent PRIVATE ${AGENT_INCLUDES})
target_link_libraries(agent PRIVATE cac_agent)

# The demo client executable.
add_executable(browser ./demo/client.cc)
target_include_directories(browser PRIVATE ${BROWSER_INCLUDES})
target_link_libraries(browser PRIVATE cac_browser)


Messung V0.5
C=90 H=97 G=93

¤ Dauer der Verarbeitung: 0.1 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.