forked from minhngoc25a/freetype2
[cmake] Add script to test the config module.
* builds/cmake/testbuild.sh: New file.
This commit is contained in:
parent
c80620c7fe
commit
30fdfe6c66
|
@ -1,3 +1,9 @@
|
|||
2015-11-27 Tamas Kenez <tamas.kenez@adasworks.com>
|
||||
|
||||
[cmake] Add script to test the config module.
|
||||
|
||||
* builds/cmake/testbuild.sh: New file.
|
||||
|
||||
2015-11-27 Tamas Kenez <tamas.kenez@adasworks.com>
|
||||
|
||||
* CMakeLists.txt: Create `freetype-config.cmake' config module.
|
||||
|
|
|
@ -0,0 +1,157 @@
|
|||
#!/bin/sh -e
|
||||
|
||||
# Copyright 2015 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
|
Loading…
Reference in New Issue