tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

testbuild.sh (3430B)


      1 #!/bin/sh -e
      2 
      3 # Copyright (C) 2015-2025 by
      4 # David Turner, Robert Wilhelm, and Werner Lemberg.
      5 #
      6 # This file is part of the FreeType project, and may only be used, modified,
      7 # and distributed under the terms of the FreeType project license,
      8 # LICENSE.TXT.  By continuing to use, modify, or distribute this file you
      9 # indicate that you have read the license and understand and accept it
     10 # fully.
     11 
     12 # This script tests the CMake build. Simply run
     13 #
     14 #     builds/cmake/testbuild.sh
     15 #
     16 # or
     17 #
     18 #     BUILD_SHARED_LIBS=1 builds/cmake/testbuild.sh
     19 #
     20 # The script:
     21 #
     22 # - builds the main CMakeLists.txt
     23 # - builds and runs a small test app in a separate build tree so
     24 #   the config-module is tested, too
     25 #
     26 # Options (environment variables):
     27 #
     28 # - The variable BUILD_SHARED_LIBS will be forwarded to the CMake project
     29 #   that builds the library.
     30 #
     31 
     32 
     33 # prepare temporary dir
     34 
     35 cd `dirname $0`/../..
     36 ftdir=`pwd`
     37 tmpdir=/tmp/freetype-cmake-testbuild
     38 rm -rf $tmpdir
     39 mkdir -p $tmpdir
     40 
     41 
     42 # build and install freetype
     43 
     44 if test -n "$BUILD_SHARED_LIBS"; then
     45  bsl=-DBUILD_SHARED_LIBS=$BUILD_SHARED_LIBS
     46 else
     47  bsl=-UBUILD_SHARED_LIBS
     48 fi
     49 
     50 build_opts="-DWITH_ZLIB=0 \
     51            -DWITH_BZip2=0 \
     52            -DWITH_PNG=0 \
     53            -DWITH_HarfBuzz=0 \
     54            $bsl \
     55            -DCMAKE_INSTALL_PREFIX=$tmpdir/out"
     56 
     57 (set -x; cmake -H$ftdir \
     58               -B$tmpdir/ftb \
     59               -DCMAKE_BUILD_TYPE=Debug \
     60               $build_opts)
     61 (set -x; cmake --build $tmpdir/ftb \
     62               --config Debug \
     63               --target install)
     64 
     65 (set -x; cmake $tmpdir/ftb \
     66               -DCMAKE_BUILD_TYPE=Release)
     67 (set -x; cmake --build $tmpdir/ftb \
     68               --config Release \
     69               --target install \
     70               --clean-first)
     71 
     72 
     73 # create test project CMakeLists.txt
     74 
     75 cat >$tmpdir/CMakeLists.txt << END
     76 cmake_minimum_required(VERSION 2.6)
     77 project(freetype-cmake-testbuild)
     78 
     79 find_package(Freetype REQUIRED CONFIG)
     80 
     81 add_executable(freetype-cmake-test main.c)
     82 target_link_libraries(freetype-cmake-test freetype)
     83 
     84 enable_testing()
     85 add_test(freetype-cmake-test freetype-cmake-test)
     86 END
     87 
     88 
     89 # create test project main.c
     90 
     91 cat >$tmpdir/main.c << END
     92 #include <stdio.h>
     93 #include <stdlib.h>
     94 
     95 #include <ft2build.h>
     96 #include <freetype/freetype.h>
     97 
     98 
     99 FT_Library library;
    100 
    101 
    102 int main(int argc,
    103         char*argv[])
    104 {
    105  FT_Error error;
    106  FT_Int major = 0;
    107  FT_Int minor = 0;
    108  FT_Int patch = 0;
    109 
    110  error = FT_Init_FreeType(&library);
    111  if (error)
    112    return EXIT_FAILURE;
    113 
    114  FT_Library_Version(library, &major, &minor, &patch);
    115  if (major != FREETYPE_MAJOR
    116      || minor != FREETYPE_MINOR
    117      || patch != FREETYPE_PATCH)
    118    return EXIT_FAILURE;
    119 
    120  printf("FT_Library_Version: %d.%d.%d\n", major, minor, patch);
    121 
    122  error = FT_Done_FreeType(library);
    123  if (error)
    124    return EXIT_FAILURE;
    125 
    126  return EXIT_SUCCESS;
    127 }
    128 END
    129 
    130 
    131 # build and test
    132 
    133 mkdir -p $tmpdir/tb
    134 cd $tmpdir/tb
    135 
    136 LD_LIBRARY_PATH=$tmpdir/out/lib:$LD_LIBRARY_PATH
    137 DYLD_LIBRARY_PATH=$tmpdir/out/lib:$DYLD_LIBRARY_PATH
    138 export LD_LIBRARY_PATH
    139 export DYLD_LIBRARY_PATH
    140 
    141 (set -x; cmake $tmpdir \
    142               -DCMAKE_BUILD_TYPE=Debug \
    143               -DCMAKE_PREFIX_PATH=$tmpdir/out)
    144 (set -x; cmake --build . \
    145               --config Debug)
    146 (set -x; ctest -V -C Debug)
    147 
    148 (set -x; cmake . \
    149               -DCMAKE_BUILD_TYPE=Release)
    150 (set -x; cmake --build . \
    151               --config Release \
    152               --clean-first)
    153 (set -x; ctest -V -C Release)
    154 
    155 rm -rf $tmpdir
    156 
    157 # EOF