aboutsummaryrefslogtreecommitdiffhomepage
path: root/projects/openexr/build.sh
diff options
context:
space:
mode:
authorGravatar Michael Jezierny <michael@alsophian.net>2020-07-07 14:28:37 -0700
committerGravatar GitHub <noreply@github.com>2020-07-07 14:28:37 -0700
commitc8279e2c2d1c16c15c8ffc1663308db61811c5ae (patch)
tree6ed27d29d1d6d10aa1071ffd56693cc88e6a3fb6 /projects/openexr/build.sh
parent2c664877af692dbffbf553e66d0c685d028eb8b0 (diff)
[openexr] Initial integration of OpenEXR fuzzers. (#4060)
* Add a working skeleton for OpenEXR fuzzers. * added openexr fuzzers, updated build script to include them * cleaned up bash loop * replace "/work" with in build.sh * Reformat CMake settings, and also prevent building utils and examples. * Reformat and change names in build.sh. * Omit the version prefix when building OpenEXR and IlmBase libraries. * Correct the contact addresses for OpenEXR. Co-authored-by: Ravi Jotwani <rjotwani@google.com>
Diffstat (limited to 'projects/openexr/build.sh')
-rwxr-xr-xprojects/openexr/build.sh53
1 files changed, 53 insertions, 0 deletions
diff --git a/projects/openexr/build.sh b/projects/openexr/build.sh
new file mode 100755
index 00000000..fa63c2a4
--- /dev/null
+++ b/projects/openexr/build.sh
@@ -0,0 +1,53 @@
+#!/bin/bash -eu
+# Copyright 2020 Google Inc.
+#
+# 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
+#
+# http://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.
+#
+################################################################################
+
+cd $WORK/
+
+CMAKE_SETTINGS=(
+ "-D BUILD_SHARED_LIBS=OFF" # Build static libraries only
+ "-D PYILMBASE_ENABLE=OFF" # Don't build Python support
+ "-D BUILD_TESTING=OFF" # Or tests
+ "-D OPENEXR_BUILD_UTILS=OFF" # Or utilities
+ "-D INSTALL_OPENEXR_EXAMPLES=OFF" # Or examples
+ "-D OPENEXR_LIB_SUFFIX=" # Don't append the version number to library files
+ "-D ILMBASE_LIB_SUFFIX="
+)
+cmake $SRC/openexr ${CMAKE_SETTINGS[@]}
+make -j$(nproc)
+
+INCLUDES=(
+ "-I $SRC/openexr/OpenEXR/IlmImf"
+ "-I $SRC/openexr/IlmBase/Imath"
+ "-I $SRC/openexr/IlmBase/Iex"
+ "-I $SRC/openexr/IlmBase/Half"
+ "-I $WORK/OpenEXR/config"
+ "-I $WORK/IlmBase/config"
+)
+
+LIBS=(
+ "$WORK/OpenEXR/IlmImf/libIlmImf.a"
+ "$WORK/IlmBase/Iex/libIex.a"
+ "$WORK/IlmBase/Half/libHalf.a"
+ "$WORK/IlmBase/IlmThread/libIlmThread.a"
+ "$WORK/IlmBase/Imath/libImath.a"
+)
+
+for fuzzer in $SRC/*_fuzzer.cc; do
+ fuzzer_basename=$(basename -s .cc $fuzzer)
+ $CXX $CXXFLAGS -std=c++11 -pthread ${INCLUDES[@]} $fuzzer $LIB_FUZZING_ENGINE ${LIBS[@]} -lz \
+ -o $OUT/$fuzzer_basename
+done