1 // Copyright 2019 The libgav1 Authors
2 //
3 // Licensed under the Apache License, Version 2.0 (the "License");
4 // you may not use this file except in compliance with the License.
5 // You may obtain a copy of the License at
6 //
7 //      http://www.apache.org/licenses/LICENSE-2.0
8 //
9 // Unless required by applicable law or agreed to in writing, software
10 // distributed under the License is distributed on an "AS IS" BASIS,
11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 // See the License for the specific language governing permissions and
13 // limitations under the License.
14 
15 #include "src/gav1/version.h"
16 
17 #define LIBGAV1_TOSTRING(x) #x
18 #define LIBGAV1_STRINGIFY(x) LIBGAV1_TOSTRING(x)
19 #define LIBGAV1_DOT_SEPARATED(M, m, p) M##.##m##.##p
20 #define LIBGAV1_DOT_SEPARATED_VERSION(M, m, p) LIBGAV1_DOT_SEPARATED(M, m, p)
21 #define LIBGAV1_DOT_VERSION                                                   \
22   LIBGAV1_DOT_SEPARATED_VERSION(LIBGAV1_MAJOR_VERSION, LIBGAV1_MINOR_VERSION, \
23                                 LIBGAV1_PATCH_VERSION)
24 
25 #define LIBGAV1_VERSION_STRING LIBGAV1_STRINGIFY(LIBGAV1_DOT_VERSION)
26 
27 extern "C" {
28 
Libgav1GetVersion()29 int Libgav1GetVersion() { return LIBGAV1_VERSION; }
Libgav1GetVersionString()30 const char* Libgav1GetVersionString() { return LIBGAV1_VERSION_STRING; }
31 
Libgav1GetBuildConfiguration()32 const char* Libgav1GetBuildConfiguration() {
33   // TODO(jzern): cmake can generate the detail or in other cases we could
34   // produce one based on the known defines along with the defaults based on
35   // the toolchain, e.g., LIBGAV1_ENABLE_NEON from cpu.h.
36   return "Not available.";
37 }
38 
39 }  // extern "C"
40