158 lines
3.3 KiB
Bash
Executable File
158 lines
3.3 KiB
Bash
Executable File
#!/bin/sh -e
|
|
|
|
# Copyright 2015-2016 by
|
|
# David Turner, Robert Wilhelm, and Werner Lemberg.
|
|
#
|
|
# This file is part of the FreeType project, and may only be used, modified,
|
|
# and distributed under the terms of the FreeType project license,
|
|
# LICENSE.TXT. By continuing to use, modify, or distribute this file you
|
|
# indicate that you have read the license and understand and accept it
|
|
# fully.
|
|
|
|
# This script tests the CMake build. Simply run
|
|
#
|
|
# builds/cmake/testbuild.sh
|
|
#
|
|
# or
|
|
#
|
|
# BUILD_SHARED_LIBS=1 builds/cmake/testbuild.sh
|
|
#
|
|
# The script:
|
|
#
|
|
# - builds the main CMakeLists.txt
|
|
# - builds and runs a small test app in a separate build tree so
|
|
# the config-module is tested, too
|
|
#
|
|
# Options (environment variables):
|
|
#
|
|
# - The variable BUILD_SHARED_LIBS will be forwarded to the CMake project
|
|
# that builds the library.
|
|
#
|
|
|
|
|
|
# prepare temporary dir
|
|
|
|
cd `dirname $0`/../..
|
|
ftdir=`pwd`
|
|
tmpdir=/tmp/freetype-cmake-testbuild
|
|
rm -rf $tmpdir
|
|
mkdir -p $tmpdir
|
|
|
|
|
|
# build and install freetype
|
|
|
|
if test -n "$BUILD_SHARED_LIBS"; then
|
|
bsl=-DBUILD_SHARED_LIBS=$BUILD_SHARED_LIBS
|
|
else
|
|
bsl=-UBUILD_SHARED_LIBS
|
|
fi
|
|
|
|
build_opts="-DWITH_ZLIB=0 \
|
|
-DWITH_BZip2=0 \
|
|
-DWITH_PNG=0 \
|
|
-DWITH_HarfBuzz=0 \
|
|
$bsl \
|
|
-DCMAKE_INSTALL_PREFIX=$tmpdir/out"
|
|
|
|
(set -x; cmake -H$ftdir \
|
|
-B$tmpdir/ftb \
|
|
-DCMAKE_BUILD_TYPE=Debug \
|
|
$build_opts)
|
|
(set -x; cmake --build $tmpdir/ftb \
|
|
--config Debug \
|
|
--target install)
|
|
|
|
(set -x; cmake $tmpdir/ftb \
|
|
-DCMAKE_BUILD_TYPE=Release)
|
|
(set -x; cmake --build $tmpdir/ftb \
|
|
--config Release \
|
|
--target install \
|
|
--clean-first)
|
|
|
|
|
|
# create test project CMakeLists.txt
|
|
|
|
cat >$tmpdir/CMakeLists.txt << END
|
|
cmake_minimum_required(VERSION 2.6)
|
|
project(freetype-cmake-testbuild)
|
|
|
|
find_package(Freetype REQUIRED CONFIG)
|
|
|
|
add_executable(freetype-cmake-test main.c)
|
|
target_link_libraries(freetype-cmake-test freetype)
|
|
|
|
enable_testing()
|
|
add_test(freetype-cmake-test freetype-cmake-test)
|
|
END
|
|
|
|
|
|
# create test project main.c
|
|
|
|
cat >$tmpdir/main.c << END
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
#include <ft2build.h>
|
|
#include FT_FREETYPE_H
|
|
|
|
|
|
FT_Library library;
|
|
|
|
|
|
int main(int argc,
|
|
char*argv[])
|
|
{
|
|
FT_Error error;
|
|
FT_Int major = 0;
|
|
FT_Int minor = 0;
|
|
FT_Int patch = 0;
|
|
|
|
error = FT_Init_FreeType(&library);
|
|
if (error)
|
|
return EXIT_FAILURE;
|
|
|
|
FT_Library_Version(library, &major, &minor, &patch);
|
|
if (major != FREETYPE_MAJOR
|
|
|| minor != FREETYPE_MINOR
|
|
|| patch != FREETYPE_PATCH)
|
|
return EXIT_FAILURE;
|
|
|
|
printf("FT_Library_Version: %d.%d.%d\n", major, minor, patch);
|
|
|
|
error = FT_Done_FreeType(library);
|
|
if (error)
|
|
return EXIT_FAILURE;
|
|
|
|
return EXIT_SUCCESS;
|
|
}
|
|
END
|
|
|
|
|
|
# build and test
|
|
|
|
mkdir -p $tmpdir/tb
|
|
cd $tmpdir/tb
|
|
|
|
LD_LIBRARY_PATH=$tmpdir/out/lib:$LD_LIBRARY_PATH
|
|
DYLD_LIBRARY_PATH=$tmpdir/out/lib:$DYLD_LIBRARY_PATH
|
|
export LD_LIBRARY_PATH
|
|
export DYLD_LIBRARY_PATH
|
|
|
|
(set -x; cmake $tmpdir \
|
|
-DCMAKE_BUILD_TYPE=Debug \
|
|
-DCMAKE_PREFIX_PATH=$tmpdir/out)
|
|
(set -x; cmake --build . \
|
|
--config Debug)
|
|
(set -x; ctest -V -C Debug)
|
|
|
|
(set -x; cmake . \
|
|
-DCMAKE_BUILD_TYPE=Release)
|
|
(set -x; cmake --build . \
|
|
--config Release \
|
|
--clean-first)
|
|
(set -x; ctest -V -C Release)
|
|
|
|
rm -rf $tmpdir
|
|
|
|
# EOF
|