# Copyright 2021 The Pigweed Authors
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may not
# use this file except in compliance with the License. You may obtain a copy of
# the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.

declare_args() {
  # The path to chromium source. Repo must be available at
  # "$dir_pw_third_party_chromium_verifier/src". It is recommended to install
  # the package via "pw package install chromium_verifier"
  dir_pw_third_party_chromium_verifier = ""

  # Specify whether the target platform has native POSIX thread implementation.
  # Our current porting of chromium verifier doesn't require to link in any of the
  # pthread APIs, but some declarations and type definitions, such as pthread_t,
  # pthread_mutex_t and pthread_mutex_lock, are still needed for compilation.
  # If this is set to false, the module will provide a pthread.h header that
  # defines the needed types.
  pw_third_party_chromium_verifier_HAS_NATIVE_PTHREAD = true
}
