pantry/projects/gflags.github.io/package.yml
2023-10-01 20:41:57 -04:00

50 lines
1.3 KiB
YAML

distributable:
url: https://github.com/gflags/gflags/archive/refs/tags/v{{version}}.tar.gz
strip-components: 1
versions:
github: gflags/gflags/tags
strip: /^v/
build:
dependencies:
cmake.org: '*'
working-directory: buildroot
script: |
cmake $ARGS ..
make --jobs {{ hw.concurrency }}
make install
env:
ARGS:
- -DCMAKE_INSTALL_PREFIX={{prefix}}
- -DBUILD_SHARED_LIBS=ON
- -DBUILD_STATIC_LIBS=ON
- -DCMAKE_POSITION_INDEPENDENT_CODE=ON
test:
fixture: |
#include <iostream>
#include "gflags/gflags.h"
DEFINE_bool(verbose, false, "Display program name before message");
DEFINE_string(message, "Hello world!", "Message to print");
static bool IsNonEmptyMessage(const char *flagname, const std::string &value)
{
return value[0] != '\0';
}
DEFINE_validator(message, &IsNonEmptyMessage);
int main(int argc, char *argv[])
{
gflags::SetUsageMessage("some usage message");
gflags::SetVersionString("1.0.0");
gflags::ParseCommandLineFlags(&argc, &argv, true);
if (FLAGS_verbose) std::cout << gflags::ProgramInvocationShortName() << ": ";
std::cout << FLAGS_message;
gflags::ShutDownCommandLineFlags();
return 0;
}
script: |
mv $FIXTURE test.cpp
g++ test.cpp -lgflags -o test
./test