Merge branch 'master' into webview-chromium

Update to the latest master.
This commit is contained in:
Vadim Zeitlin 2023-08-29 02:56:36 +02:00
commit b6bfdd97c9
5688 changed files with 765979 additions and 1146565 deletions

View file

@ -26,7 +26,7 @@ AC_CACHE_CHECK(how many arguments getservbyname_r() takes,
dnl we need to use C++ to detect missing prototypes
AC_LANG_PUSH(C++)
AC_TRY_COMPILE([#include <netdb.h>],
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <netdb.h>], [
[
char *name;
char *proto;
@ -34,10 +34,10 @@ AC_CACHE_CHECK(how many arguments getservbyname_r() takes,
char buffer[2048];
int buflen = 2048;
(void) getservbyname_r(name, proto, se, buffer, buflen, &res)
],
]])],
ac_cv_func_which_getservbyname_r=six,
[
AC_TRY_COMPILE([#include <netdb.h>],
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <netdb.h>], [
[
char *name;
char *proto;
@ -45,17 +45,17 @@ AC_CACHE_CHECK(how many arguments getservbyname_r() takes,
char buffer[2048];
int buflen = 2048;
(void) getservbyname_r(name, proto, se, buffer, buflen)
],
]])],
ac_cv_func_which_getservbyname_r=five,
[
AC_TRY_COMPILE([#include <netdb.h>],
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <netdb.h>],
[
char *name;
char *proto;
struct servent *se;
struct servent_data data;
(void) getservbyname_r(name, proto, se, &data);
],
])],
ac_cv_func_which_getservbyname_r=four,
ac_cv_func_which_getservbyname_r=no
)

View file

@ -6,18 +6,15 @@ AC_DEFUN([WX_ATOMIC_BUILTINS],
[
AC_REQUIRE([AC_PROG_CC])
if test -n "$GCC"; then
AC_MSG_CHECKING([for __sync_fetch_and_add and __sync_sub_and_fetch builtins])
AC_MSG_CHECKING([for __sync_xxx_and_fetch builtins])
AC_CACHE_VAL(wx_cv_cc_gcc_atomic_builtins, [
AC_TRY_LINK(
AC_LINK_IFELSE([AC_LANG_PROGRAM(
[],
[
unsigned int value=0;
/* wxAtomicInc doesn't use return value here */
__sync_fetch_and_add(&value, 2);
__sync_sub_and_fetch(&value, 1);
/* but wxAtomicDec does, so mimic that: */
volatile unsigned int r1 = __sync_add_and_fetch(&value, 2);
volatile unsigned int r2 = __sync_sub_and_fetch(&value, 1);
],
])],
wx_cv_cc_gcc_atomic_builtins=yes,
wx_cv_cc_gcc_atomic_builtins=no)
])

View file

@ -81,19 +81,18 @@ AS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnl
AS_VAR_PUSHDEF([VAR],[ac_cv_cflags_gcc_option_$2])dnl
AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for gcc m4_ifval($2,$2,-option)],
VAR,[VAR="no, unknown"
AC_LANG_SAVE
AC_LANG_C
AC_LANG_PUSH(C)
ac_save_[]FLAGS="$[]FLAGS"
for ac_arg dnl
in "-pedantic -Werror % m4_ifval($2,$2,-option)" dnl GCC
"-pedantic % m4_ifval($2,$2,-option) %% no, obsolete" dnl new GCC
#
do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
AC_TRY_COMPILE([],[return 0;],
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[return 0;])],
[VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break])
done
FLAGS="$ac_save_[]FLAGS"
AC_LANG_RESTORE
AC_LANG_POP()
])
case ".$VAR" in
.ok|.ok,*) m4_ifvaln($3,$3) ;;
@ -117,19 +116,18 @@ AS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnl
AS_VAR_PUSHDEF([VAR],[ac_cv_cxxflags_gcc_option_$2])dnl
AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for gcc m4_ifval($2,$2,-option)],
VAR,[VAR="no, unknown"
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_LANG_PUSH(C++)
ac_save_[]FLAGS="$[]FLAGS"
for ac_arg dnl
in "-pedantic -Werror % m4_ifval($2,$2,-option)" dnl GCC
"-pedantic % m4_ifval($2,$2,-option) %% no, obsolete" dnl new GCC
#
do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
AC_TRY_COMPILE([],[return 0;],
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[return 0;])],
[VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break])
done
FLAGS="$ac_save_[]FLAGS"
AC_LANG_RESTORE
AC_LANG_POP()
])
case ".$VAR" in
.ok|.ok,*) m4_ifvaln($3,$3) ;;
@ -152,19 +150,18 @@ AS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnl
AS_VAR_PUSHDEF([VAR],[ac_cv_cflags_gcc_option_$1])dnl
AC_CACHE_CHECK([m4_ifval($2,$2,FLAGS) for gcc m4_ifval($1,$1,-option)],
VAR,[VAR="no, unknown"
AC_LANG_SAVE
AC_LANG_C
AC_LANG_PUSH(C)
ac_save_[]FLAGS="$[]FLAGS"
for ac_arg dnl
in "-pedantic -Werror % m4_ifval($1,$1,-option)" dnl GCC
"-pedantic % m4_ifval($1,$1,-option) %% no, obsolete" dnl new GCC
#
do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
AC_TRY_COMPILE([],[return 0;],
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[return 0;])],
[VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break])
done
FLAGS="$ac_save_[]FLAGS"
AC_LANG_RESTORE
AC_LANG_POP()
])
case ".$VAR" in
.ok|.ok,*) m4_ifvaln($3,$3) ;;
@ -188,19 +185,18 @@ AS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnl
AS_VAR_PUSHDEF([VAR],[ac_cv_cxxflags_gcc_option_$1])dnl
AC_CACHE_CHECK([m4_ifval($2,$2,FLAGS) for gcc m4_ifval($1,$1,-option)],
VAR,[VAR="no, unknown"
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_LANG_PUSH(C++)
ac_save_[]FLAGS="$[]FLAGS"
for ac_arg dnl
in "-pedantic -Werror % m4_ifval($1,$1,-option)" dnl GCC
"-pedantic % m4_ifval($1,$1,-option) %% no, obsolete" dnl new GCC
#
do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
AC_TRY_COMPILE([],[return 0;],
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],[return 0;])],
[VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break])
done
FLAGS="$ac_save_[]FLAGS"
AC_LANG_RESTORE
AC_LANG_POP()
])
case ".$VAR" in
.ok|.ok,*) m4_ifvaln($3,$3) ;;

View file

@ -10,13 +10,13 @@
#
# Check for baseline language coverage in the compiler for the specified
# version of the C++ standard. If necessary, add switches to CXX and
# CXXCPP to enable support. VERSION may be '11' (for the C++11 standard)
# or '14' (for the C++14 standard).
# CXXCPP to enable support. VERSION may be '11', '14', '17', or '20' for
# the respective C++ standard version.
#
# The second argument, if specified, indicates whether you insist on an
# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g.
# -std=c++11). If neither is specified, you get whatever works, with
# preference for an extended mode.
# preference for no added switch, and then for an extended mode.
#
# The third argument, if specified 'mandatory' or if left unspecified,
# indicates that baseline support for the specified C++ standard is
@ -33,23 +33,26 @@
# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com>
# Copyright (c) 2015 Paul Norman <penorman@mac.com>
# Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu>
# Copyright (c) 2016 Krzesimir Nowak <qdlacz@gmail.com>
# Copyright (c) 2016, 2018 Krzesimir Nowak <qdlacz@gmail.com>
# Copyright (c) 2019 Enji Cooper <yaneurabeya@gmail.com>
# Copyright (c) 2020 Jason Merrill <jason@redhat.com>
# Copyright (c) 2021 Jörn Heusipp <osmanx@problemloesungsmaschine.de>
#
# Copying and distribution of this file, with or without modification, are
# permitted in any medium without royalty provided the copyright notice
# and this notice are preserved. This file is offered as-is, without any
# warranty.
#serial 7
#serial 14
dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro
dnl (serial version number 13).
AX_REQUIRE_DEFINED([AC_MSG_WARN])
AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl
m4_if([$1], [11], [ax_cxx_compile_alternatives="11 0x"],
[$1], [14], [ax_cxx_compile_alternatives="14 1y"],
[$1], [17], [ax_cxx_compile_alternatives="17 1z"],
[$1], [20], [ax_cxx_compile_alternatives="20"],
[m4_fatal([invalid first argument `$1' to AX_CXX_COMPILE_STDCXX])])dnl
m4_if([$2], [], [],
[$2], [ext], [],
@ -61,14 +64,16 @@ AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl
[m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])])
AC_LANG_PUSH([C++])dnl
ac_success=no
AC_CACHE_CHECK(whether $CXX supports C++$1 features by default,
ax_cv_cxx_compile_cxx$1,
[AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
[ax_cv_cxx_compile_cxx$1=yes],
[ax_cv_cxx_compile_cxx$1=no])])
if test x$ax_cv_cxx_compile_cxx$1 = xyes; then
ac_success=yes
fi
m4_if([$2], [], [dnl
AC_CACHE_CHECK(whether $CXX supports C++$1 features by default,
ax_cv_cxx_compile_cxx$1,
[AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])],
[ax_cv_cxx_compile_cxx$1=yes],
[ax_cv_cxx_compile_cxx$1=no])])
if test x$ax_cv_cxx_compile_cxx$1 = xyes; then
ac_success=yes
fi])
m4_if([$2], [noext], [], [dnl
if test x$ac_success = xno; then
@ -139,7 +144,6 @@ AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl
[define if the compiler supports basic C++$1 syntax])
fi
AC_SUBST(HAVE_CXX$1)
m4_if([$1], [17], [AC_MSG_WARN([C++17 is not yet standardized, so the checks may change in incompatible ways anytime])])
])
@ -149,7 +153,6 @@ m4_define([_AX_CXX_COMPILE_STDCXX_testbody_11],
_AX_CXX_COMPILE_STDCXX_testbody_new_in_11
)
dnl Test body for checking C++14 support
m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14],
@ -157,12 +160,24 @@ m4_define([_AX_CXX_COMPILE_STDCXX_testbody_14],
_AX_CXX_COMPILE_STDCXX_testbody_new_in_14
)
dnl Test body for checking C++17 support
m4_define([_AX_CXX_COMPILE_STDCXX_testbody_17],
_AX_CXX_COMPILE_STDCXX_testbody_new_in_11
_AX_CXX_COMPILE_STDCXX_testbody_new_in_14
_AX_CXX_COMPILE_STDCXX_testbody_new_in_17
)
dnl Test body for checking C++20 support
m4_define([_AX_CXX_COMPILE_STDCXX_testbody_20],
_AX_CXX_COMPILE_STDCXX_testbody_new_in_11
_AX_CXX_COMPILE_STDCXX_testbody_new_in_14
_AX_CXX_COMPILE_STDCXX_testbody_new_in_17
_AX_CXX_COMPILE_STDCXX_testbody_new_in_20
)
dnl Tests for new features in C++11
m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_11], [[
@ -199,11 +214,13 @@ namespace cxx11
struct Base
{
virtual ~Base() {}
virtual void f() {}
};
struct Derived : public Base
{
virtual ~Derived() override {}
virtual void f() override {}
};
@ -587,20 +604,12 @@ m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_17], [[
#error "This is not a C++ compiler"
#elif __cplusplus <= 201402L
#elif __cplusplus < 201703L
#error "This is not a C++17 compiler"
#else
#if defined(__clang__)
#define REALLY_CLANG
#else
#if defined(__GNUC__)
#define REALLY_GCC
#endif
#endif
#include <initializer_list>
#include <utility>
#include <type_traits>
@ -608,16 +617,12 @@ m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_17], [[
namespace cxx17
{
#if !defined(REALLY_CLANG)
namespace test_constexpr_lambdas
{
// TODO: test it with clang++ from git
constexpr int foo = [](){return 42;}();
}
#endif // !defined(REALLY_CLANG)
namespace test::nested_namespace::definitions
{
@ -852,12 +857,9 @@ namespace cxx17
}
#if !defined(REALLY_CLANG)
namespace test_template_argument_deduction_for_class_templates
{
// TODO: test it with clang++ from git
template <typename T1, typename T2>
struct pair
{
@ -876,7 +878,6 @@ namespace cxx17
}
}
#endif // !defined(REALLY_CLANG)
namespace test_non_type_auto_template_parameters
{
@ -890,12 +891,9 @@ namespace cxx17
}
#if !defined(REALLY_CLANG)
namespace test_structured_bindings
{
// TODO: test it with clang++ from git
int arr[2] = { 1, 2 };
std::pair<int, int> pr = { 1, 2 };
@ -927,14 +925,10 @@ namespace cxx17
const auto [ x3, y3 ] = f3();
}
#endif // !defined(REALLY_CLANG)
#if !defined(REALLY_CLANG)
namespace test_exception_spec_type_system
{
// TODO: test it with clang++ from git
struct Good {};
struct Bad {};
@ -952,7 +946,6 @@ namespace cxx17
static_assert (std::is_same_v<Good, decltype(f(g1, g2))>);
}
#endif // !defined(REALLY_CLANG)
namespace test_inline_variables
{
@ -977,6 +970,36 @@ namespace cxx17
} // namespace cxx17
#endif // __cplusplus <= 201402L
#endif // __cplusplus < 201703L
]])
dnl Tests for new features in C++20
m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_20], [[
#ifndef __cplusplus
#error "This is not a C++ compiler"
#elif __cplusplus < 202002L
#error "This is not a C++20 compiler"
#else
#include <version>
namespace cxx20
{
// As C++20 supports feature test macros in the standard, there is no
// immediate need to actually test for feature availability on the
// Autoconf side.
} // namespace cxx20
#endif // __cplusplus < 202002L
]])

View file

@ -1,35 +1,74 @@
dnl @synopsis AX_FUNC_WHICH_GETHOSTBYNAME_R
dnl
dnl Determines which historical variant of the gethostbyname_r() call
dnl (taking three, five, or six arguments) is available on the system
dnl and defines one of the following macros accordingly:
dnl
dnl HAVE_FUNC_GETHOSTBYNAME_R_6
dnl HAVE_FUNC_GETHOSTBYNAME_R_5
dnl HAVE_FUNC_GETHOSTBYNAME_R_3
dnl
dnl If used in conjunction with gethostname.c, the API demonstrated in
dnl test.c can be used regardless of which gethostbyname_r() is
dnl available. These example files can be found at
dnl http://www.csn.ul.ie/~caolan/publink/gethostbyname_r
dnl
dnl based on David Arnold's autoconf suggestion in the threads faq
dnl
dnl Originally named "AC_caolan_FUNC_WHICH_GETHOSTBYNAME_R". Rewritten
dnl for Autoconf 2.5x by Daniel Richard G.
dnl
dnl @category InstalledPackages
dnl @author Caolan McNamara <caolan@skynet.ie>
dnl @author Daniel Richard G. <skunk@iskunk.org>
dnl @version 2005-01-21
dnl @license GPLWithACException
# ==================================================================================
# https://www.gnu.org/software/autoconf-archive/ax_func_which_gethostbyname_r.html
# ==================================================================================
#
# SYNOPSIS
#
# AX_FUNC_WHICH_GETHOSTBYNAME_R
#
# DESCRIPTION
#
# Determines which historical variant of the gethostbyname_r() call
# (taking three, five, or six arguments) is available on the system and
# defines one of the following macros accordingly:
#
# HAVE_FUNC_GETHOSTBYNAME_R_6
# HAVE_FUNC_GETHOSTBYNAME_R_5
# HAVE_FUNC_GETHOSTBYNAME_R_3
#
# as well as
#
# HAVE_GETHOSTBYNAME_R
#
# If used in conjunction with gethostname.c, the API demonstrated in
# test.c can be used regardless of which gethostbyname_r() is available.
# These example files can be found at
# http://www.csn.ul.ie/~caolan/publink/gethostbyname_r
#
# based on David Arnold's autoconf suggestion in the threads faq
#
# Originally named "AC_caolan_FUNC_WHICH_GETHOSTBYNAME_R". Rewritten for
# Autoconf 2.5x, and updated for 2.68 by Daniel Richard G.
#
# LICENSE
#
# Copyright (c) 2008 Caolan McNamara <caolan@skynet.ie>
# Copyright (c) 2008 Daniel Richard G. <skunk@iskunk.org>
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2 of the License, or (at your
# option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <https://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
# scripts that are the output of Autoconf when processing the Macro. You
# need not follow the terms of the GNU General Public License when using
# or distributing such scripts, even though portions of the text of the
# Macro appear in them. The GNU General Public License (GPL) does govern
# all other use of the material that constitutes the Autoconf Macro.
#
# This special exception to the GPL applies to versions of the Autoconf
# Macro released by the Autoconf Archive. When you make and distribute a
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.
#serial 8
AC_DEFUN([AX_FUNC_WHICH_GETHOSTBYNAME_R], [
AC_LANG_PUSH(C)
AC_LANG_PUSH([C])
AC_MSG_CHECKING([how many arguments gethostbyname_r() takes])
AC_CACHE_VAL(ac_cv_func_which_gethostbyname_r, [
AC_CACHE_VAL([ac_cv_func_which_gethostbyname_r], [
################################################################
@ -44,16 +83,12 @@ ac_cv_func_which_gethostbyname_r=unknown
# netdb.h is not declaring the function, and the compiler is thereby
# assuming an implicit prototype. In which case, we're out of luck.
#
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[[#include <netdb.h>]],
[[
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <netdb.h>],
[
char *name = "www.gnu.org";
(void)gethostbyname_r(name) /* ; */
]]
)],
ac_cv_func_which_gethostbyname_r=no
)
])],
[ac_cv_func_which_gethostbyname_r=no])
#
# SIX ARGUMENTS
@ -62,20 +97,16 @@ AC_COMPILE_IFELSE(
if test "$ac_cv_func_which_gethostbyname_r" = "unknown"; then
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[[#include <netdb.h>]],
[[
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <netdb.h>],
[
char *name = "www.gnu.org";
struct hostent ret, *retp;
char buf@<:@1024@:>@;
int buflen = 1024;
int my_h_errno;
(void)gethostbyname_r(name, &ret, buf, buflen, &retp, &my_h_errno) /* ; */
]]
)],
ac_cv_func_which_gethostbyname_r=six
)
])],
[ac_cv_func_which_gethostbyname_r=six])
fi
@ -86,20 +117,16 @@ fi
if test "$ac_cv_func_which_gethostbyname_r" = "unknown"; then
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[[#include <netdb.h>]],
[[
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <netdb.h>],
[
char *name = "www.gnu.org";
struct hostent ret;
char buf@<:@1024@:>@;
int buflen = 1024;
int my_h_errno;
(void)gethostbyname_r(name, &ret, buf, buflen, &my_h_errno) /* ; */
]]
)],
ac_cv_func_which_gethostbyname_r=five
)
])],
[ac_cv_func_which_gethostbyname_r=five])
fi
@ -110,18 +137,14 @@ fi
if test "$ac_cv_func_which_gethostbyname_r" = "unknown"; then
AC_COMPILE_IFELSE(
[AC_LANG_PROGRAM(
[[#include <netdb.h>]],
[[
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <netdb.h>],
[
char *name = "www.gnu.org";
struct hostent ret;
struct hostent_data data;
(void)gethostbyname_r(name, &ret, &data) /* ; */
]]
)],
ac_cv_func_which_gethostbyname_r=three
)
])],
[ac_cv_func_which_gethostbyname_r=three])
fi
@ -129,20 +152,30 @@ fi
]) dnl end AC_CACHE_VAL
case "$ac_cv_func_which_gethostbyname_r" in
three|five|six)
AC_DEFINE([HAVE_GETHOSTBYNAME_R], [1],
[Define to 1 if you have some form of gethostbyname_r().])
;;
esac
case "$ac_cv_func_which_gethostbyname_r" in
three)
AC_MSG_RESULT([three])
AC_DEFINE(HAVE_FUNC_GETHOSTBYNAME_R_3)
AC_DEFINE([HAVE_FUNC_GETHOSTBYNAME_R_3], [1],
[Define to 1 if you have the three-argument form of gethostbyname_r().])
;;
five)
AC_MSG_RESULT([five])
AC_DEFINE(HAVE_FUNC_GETHOSTBYNAME_R_5)
AC_DEFINE([HAVE_FUNC_GETHOSTBYNAME_R_5], [1],
[Define to 1 if you have the five-argument form of gethostbyname_r().])
;;
six)
AC_MSG_RESULT([six])
AC_DEFINE(HAVE_FUNC_GETHOSTBYNAME_R_6)
AC_DEFINE([HAVE_FUNC_GETHOSTBYNAME_R_6], [1],
[Define to 1 if you have the six-argument form of gethostbyname_r().])
;;
no)
@ -158,6 +191,6 @@ case "$ac_cv_func_which_gethostbyname_r" in
;;
esac
AC_LANG_POP(C)
AC_LANG_POP
]) dnl end AC_DEFUN

View file

@ -1,130 +0,0 @@
# ===========================================================================
# http://autoconf-archive.cryp.to/ax_gcc_option.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_GCC_OPTION(OPTION,EXTRA-OPTIONS,TEST-PROGRAM,ACTION-IF-SUCCESSFUL,ACTION-IF-NOT-SUCCESFUL)
#
# DESCRIPTION
#
# AX_GCC_OPTION checks wheter gcc accepts the passed OPTION. If it accepts
# the OPTION then ACTION-IF-SUCCESSFUL will be executed, otherwise
# ACTION-IF-UNSUCCESSFUL.
#
# NOTE: This macro will be obsoleted by AX_C_CHECK_FLAG AX_CXX_CHECK_FLAG,
# AX_CPP_CHECK_FLAG, AX_CXXCPP_CHECK_FLAG and AX_LD_CHECK_FLAG.
#
# A typical usage should be the following one:
#
# AX_GCC_OPTION([-fomit-frame-pointer],[],[],[
# AC_MSG_NOTICE([The option is supported])],[
# AC_MSG_NOTICE([No luck this time])
# ])
#
# The macro doesn't discriminate between languages so, if you are testing
# for an option that works for C++ but not for C you should use '-x c++'
# as EXTRA-OPTIONS:
#
# AX_GCC_OPTION([-fno-rtti],[-x c++],[],[ ... ],[ ... ])
#
# OPTION is tested against the following code:
#
# int main()
# {
# return 0;
# }
#
# The optional TEST-PROGRAM comes handy when the default main() is not
# suited for the option being checked
#
# So, if you need to test for -fstrict-prototypes option you should
# probably use the macro as follows:
#
# AX_GCC_OPTION([-fstrict-prototypes],[-x c++],[
# int main(int argc, char ** argv)
# {
# (void) argc;
# (void) argv;
#
# return 0;
# }
# ],[ ... ],[ ... ])
#
# Note that the macro compiles but doesn't link the test program so it is
# not suited for checking options that are passed to the linker, like:
#
# -Wl,-L<a-library-path>
#
# In order to avoid such kind of problems you should think about usinguse
# the AX_*_CHECK_FLAG family macros
#
# LAST MODIFICATION
#
# 2008-04-12
#
# COPYLEFT
#
# Copyright (c) 2008 Francesco Salvestrini <salvestrini@users.sourceforge.net>
# Copyright (c) 2008 Bogdan Drozdowski <bogdandr@op.pl>
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2 of the License, or (at your
# option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
# scripts that are the output of Autoconf when processing the Macro. You
# need not follow the terms of the GNU General Public License when using
# or distributing such scripts, even though portions of the text of the
# Macro appear in them. The GNU General Public License (GPL) does govern
# all other use of the material that constitutes the Autoconf Macro.
#
# This special exception to the GPL applies to versions of the Autoconf
# Macro released by the Autoconf Macro Archive. When you make and
# distribute a modified version of the Autoconf Macro, you may extend this
# special exception to the GPL to apply to your modified version as well.
AC_DEFUN([AX_GCC_OPTION], [
AC_REQUIRE([AC_PROG_CC])
AC_MSG_CHECKING([if gcc accepts $1 option])
AS_IF([ test "x$GCC" = "xyes" ],[
AS_IF([ test -z "$3" ],[
ax_gcc_option_test="int main()
{
return 0;
}"
],[
ax_gcc_option_test="$3"
])
# Dump the test program to file
cat <<EOF > conftest.c
$ax_gcc_option_test
EOF
# Dump back the file to the log, useful for debugging purposes
AC_TRY_COMMAND(cat conftest.c 1>&AS_MESSAGE_LOG_FD)
AS_IF([ AC_TRY_COMMAND($CC $2 $1 -c conftest.c 1>&AS_MESSAGE_LOG_FD) ],[
AC_MSG_RESULT([yes])
$4
],[
AC_MSG_RESULT([no])
$5
])
],[
AC_MSG_RESULT([no gcc available])
])
])

View file

@ -1,67 +0,0 @@
# ===========================================================================
# http://autoconf-archive.cryp.to/ax_gxx_version.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_GXX_VERSION
#
# DESCRIPTION
#
# This macro retrieves the g++ version and returns it in the GXX_VERSION
# variable if available, an empty string otherwise.
#
# LAST MODIFICATION
#
# 2008-04-12
#
# COPYLEFT
#
# Copyright (c) 2008 Francesco Salvestrini <salvestrini@users.sourceforge.net>
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 2 of the License, or (at your
# option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <http://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
# scripts that are the output of Autoconf when processing the Macro. You
# need not follow the terms of the GNU General Public License when using
# or distributing such scripts, even though portions of the text of the
# Macro appear in them. The GNU General Public License (GPL) does govern
# all other use of the material that constitutes the Autoconf Macro.
#
# This special exception to the GPL applies to versions of the Autoconf
# Macro released by the Autoconf Macro Archive. When you make and
# distribute a modified version of the Autoconf Macro, you may extend this
# special exception to the GPL to apply to your modified version as well.
AC_DEFUN([AX_GXX_VERSION], [
GXX_VERSION=""
AX_GCC_OPTION([-dumpversion],[],[],[
ax_gcc_version_option=yes
],[
ax_gcc_version_option=no
])
AS_IF([test "x$GXX" = "xyes"],[
AS_IF([test "x$ax_gxx_version_option" != "no"],[
AC_CACHE_CHECK([gxx version],[ax_cv_gxx_version],[
ax_cv_gxx_version="`$CXX -dumpversion`"
AS_IF([test "x$ax_cv_gxx_version" = "x"],[
ax_cv_gxx_version=""
])
])
GXX_VERSION=$ax_cv_gxx_version
])
])
AC_SUBST([GXX_VERSION])
])

View file

@ -0,0 +1,337 @@
# ===========================================================================
# https://www.gnu.org/software/autoconf-archive/ax_subdirs_configure.html
# ===========================================================================
#
# SYNOPSIS
#
# AX_SUBDIRS_CONFIGURE( [subdirs], [mandatory arguments], [possibly merged arguments], [replacement arguments], [forbidden arguments])
#
# DESCRIPTION
#
# AX_SUBDIRS_CONFIGURE attempts to be the equivalent of AC_CONFIG_SUBDIRS
# with customizable options for configure scripts.
#
# Run the configure script for each directory from the comma-separated m4
# list 'subdirs'. This macro can be used multiple times. All arguments of
# this macro must be comma-separated lists.
#
# All command line arguments from the parent configure script will be
# given to the subdirectory configure script after the following
# modifications (in that order):
#
# 1. The arguments from the 'mandatory arguments' list shall always be
# appended to the argument list.
#
# 2. The arguments from the 'possibly merged arguments' list shall be
# added if not present in the arguments of the parent configure script or
# merged with the existing argument otherwise.
#
# 3. The arguments from the 'replacement arguments' list shall be added if
# not present in the arguments of the parent configure script or replace
# the existing argument otherwise.
#
# 4. The arguments from the 'forbidden arguments' list shall always be
# removed from the argument list.
#
# The lists 'mandatory arguments' and 'forbidden arguments' can hold any
# kind of argument. The 'possibly merged arguments' and 'replacement
# arguments' expect their arguments to be of the form --option-name=value.
#
# This macro aims to remain as close as possible to the AC_CONFIG_SUBDIRS
# macro. It corrects the paths for '--cache-file' and '--srcdir' and adds
# '--disable-option-checking' and '--silent' if necessary.
#
# This macro also sets the output variable subdirs_extra to the list of
# directories recorded with AX_SUBDIRS_CONFIGURE. This variable can be
# used in Makefile rules or substituted in configured files.
#
# This macro shall do nothing more than managing the arguments of the
# configure script. Just like when using AC_CONFIG_SUBDIRS, it is up to
# the user to check any requirements or define and substitute any required
# variable for the remainder of the project.
#
# Configure scripts recorded with AX_SUBDIRS_CONFIGURE may be executed
# before configure scripts recorded with AC_CONFIG_SUBDIRS.
#
# Without additional arguments, the behaviour of AX_SUBDIRS_CONFIGURE
# should be identical to the behaviour of AC_CONFIG_SUBDIRS, apart from
# the contents of the variables subdirs and subdirs_extra (except that
# AX_SUBDIRS_CONFIGURE expects a comma-separated m4 list):
#
# AC_CONFIG_SUBDIRS([something])
# AX_SUBDIRS_CONFIGURE([something])
#
# This macro may be called multiple times.
#
# Usage example:
#
# Let us assume our project has 4 dependencies, namely A, B, C and D. Here
# are some characteristics of our project and its dependencies:
#
# - A does not require any special option.
#
# - we want to build B with an optional feature which can be enabled with
# its configure script's option '--enable-special-feature'.
#
# - B's configure script is strange and has an option '--with-B=build'.
# After close inspection of its documentation, we don't want B to receive
# this option.
#
# - C and D both need B.
#
# - Just like our project, C and D can build B themselves with the option
# '--with-B=build'.
#
# - We want C and D to use the B we build instead of building it
# themselves.
#
# Our top-level configure script will be called as follows:
#
# $ <path/to/configure> --with-A=build --with-B=build --with-C=build \
# --with-D=build --some-option
#
# Thus we have to make sure that:
#
# - neither B, C or D receive the option '--with-B=build'
#
# - C and D know where to find the headers and libraries of B.
#
# Under those conditions, we can use the AC_CONFIG_SUBDIRS macro for A,
# but need to use AX_SUBDIRS_CONFIGURE for B, C and D:
#
# - B must receive '--enable-special-feature' but cannot receive
# '--with-B=build'
#
# - C and D cannot receive '--with-B=build' (or else it would be built
# thrice) and need to be told where to find B (since we are building it,
# it would probably not be available in standard paths).
#
# Here is a configure.ac snippet that solves our problem:
#
# AC_CONFIG_SUBDIRS([dependencies/A])
# AX_SUBDIRS_CONFIGURE(
# [dependencies/B], [--enable-special-feature], [], [],
# [--with-B=build])
# AX_SUBDIRS_CONFIGURE(
# [[dependencies/C],[dependencies/D]],
# [],
# [[CPPFLAGS=-I${ac_top_srcdir}/dependencies/B -I${ac_top_builddir}/dependencies/B],
# [LDFLAGS=-L${ac_abs_top_builddir}/dependencies/B/.libs]],
# [--with-B=system],
# [])
#
# If using automake, the following can be added to the Makefile.am (we use
# both $(subdirs) and $(subdirs_extra) since our example above used both
# AC_CONFIG_SUBDIRS and AX_SUBDIRS_CONFIGURE):
#
# SUBDIRS = $(subdirs) $(subdirs_extra)
#
# LICENSE
#
# Copyright (c) 2017 Harenome Ranaivoarivony-Razanajato <ranaivoarivony-razanajato@hareno.me>
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License as published by the
# Free Software Foundation; either version 3 of the License, or (at your
# option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
# Public License for more details.
#
# Under Section 7 of GPL version 3, you are granted additional permissions
# described in the Autoconf Configure Script Exception, version 3.0, as
# published by the Free Software Foundation.
#
# You should have received a copy of the GNU General Public License along
# with this program. If not, see <https://www.gnu.org/licenses/>.
#serial 5
AC_DEFUN([AX_SUBDIRS_CONFIGURE],
[
dnl Calls to AC_CONFIG_SUBDIRS perform preliminary steps and build a list
dnl '$subdirs' which is used later by _AC_OUTPUT_SUBDIRS (used by AC_OUTPUT)
dnl to actually run the configure scripts.
dnl This macro performs similar preliminary steps but uses
dnl AC_CONFIG_COMMANDS_PRE to delay the final tasks instead of building an
dnl intermediary list and relying on another macro.
dnl
dnl Since each configure script can get different options, a special variable
dnl named 'ax_sub_configure_args_<subdir>' is constructed for each
dnl subdirectory.
# Various preliminary checks.
AC_REQUIRE([AC_DISABLE_OPTION_CHECKING])
AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])
AS_LITERAL_IF([$1], [],
[AC_DIAGNOSE([syntax], [$0: you should use literals])])
m4_foreach(subdir_path, [$1],
[
ax_dir="subdir_path"
dnl Build the argument list in a similar fashion to AC_CONFIG_SUBDIRS.
dnl A few arguments found in the final call to the configure script are not
dnl added here because they rely on variables that may not yet be available
dnl (see below the part that is similar to _AC_OUTPUT_SUBDIRS).
# Do not complain, so a configure script can configure whichever parts of a
# large source tree are present.
if test -d "$srcdir/$ax_dir"; then
_AC_SRCDIRS(["$ax_dir"])
# Remove --cache-file, --srcdir, and --disable-option-checking arguments
# so they do not pile up.
ax_args=
ax_prev=
eval "set x $ac_configure_args"
shift
for ax_arg; do
if test -n "$ax_prev"; then
ax_prev=
continue
fi
case $ax_arg in
-cache-file | --cache-file | --cache-fil | --cache-fi | --cache-f \
| --cache- | --cache | --cach | --cac | --ca | --c)
ax_prev=cache_file ;;
-cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
| --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \
| --c=*)
;;
--config-cache | -C)
;;
-srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
ax_prev=srcdir ;;
-srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
;;
-prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
ax_prev=prefix ;;
-prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* \
| --p=*)
;;
--disable-option-checking)
;;
*) case $ax_arg in
*\'*) ax_arg=$(AS_ECHO(["$ax_arg"]) | sed "s/'/'\\\\\\\\''/g");;
esac
AS_VAR_APPEND([ax_args], [" '$ax_arg'"]) ;;
esac
done
# Always prepend --disable-option-checking to silence warnings, since
# different subdirs can have different --enable and --with options.
ax_args="--disable-option-checking $ax_args"
# Options that must be added as they are provided.
m4_ifnblank([$2], [m4_foreach(opt, [$2], [AS_VAR_APPEND(ax_args, " 'opt'")
])])
# New options that may need to be merged with existing options.
m4_ifnblank([$3], [m4_foreach(opt, [$3],
[ax_candidate="opt"
ax_candidate_flag="${ax_candidate%%=*}"
ax_candidate_content="${ax_candidate#*=}"
if test "x$ax_candidate" != "x" -a "x$ax_candidate_flag" != "x"; then
if echo "$ax_args" | grep -- "${ax_candidate_flag}=" >/dev/null 2>&1; then
[ax_args=$(echo $ax_args | sed "s,\(${ax_candidate_flag}=[^']*\),\1 ${ax_candidate_content},")]
else
AS_VAR_APPEND(ax_args, " 'opt'")
fi
fi
])])
# New options that must replace existing options.
m4_ifnblank([$4], [m4_foreach(opt, [$4],
[ax_candidate="opt"
ax_candidate_flag="${ax_candidate%%=*}"
ax_candidate_content="${ax_candidate#*=}"
if test "x$ax_candidate" != "x" -a "x$ax_candidate_flag" != "x"; then
if echo "$ax_args" | grep -- "${ax_candidate_flag}=" >/dev/null 2>&1; then
[ax_args=$(echo $ax_args | sed "s,${ax_candidate_flag}=[^']*,${ax_candidate},")]
else
AS_VAR_APPEND(ax_args, " 'opt'")
fi
fi
])])
# Options that must be removed.
m4_ifnblank([$5], [m4_foreach(opt, [$5], [ax_args=$(echo $ax_args | sed "s,'opt',,")
])])
AS_VAR_APPEND([ax_args], [" '--srcdir=$ac_srcdir'"])
# Add the subdirectory to the list of target subdirectories.
ax_subconfigures="$ax_subconfigures $ax_dir"
# Save the argument list for this subdirectory.
dnl $1 is a path to some subdirectory: m4_bpatsubsts() is used to convert
dnl $1 into a valid shell variable name.
dnl For instance, "ax_sub_configure_args_path/to/subdir" becomes
dnl "ax_sub_configure_args_path_to_subdir".
ax_var=$(printf "$ax_dir" | tr -c "0-9a-zA-Z_" "_")
eval "ax_sub_configure_args_$ax_var=\"$ax_args\""
eval "ax_sub_configure_$ax_var=\"yes\""
else
AC_MSG_WARN([could not find source tree for $ax_dir])
fi
dnl Add some more arguments to the argument list and then actually run the
dnl configure script. This is mostly what happens in _AC_OUTPUT_SUBDIRS
dnl except it does not iterate over an intermediary list.
AC_CONFIG_COMMANDS_PRE(
dnl This very line cannot be quoted! m4_foreach has some work here.
ax_dir="subdir_path"
[
# Convert the path to the subdirectory into a shell variable name.
ax_var=$(printf "$ax_dir" | tr -c "0-9a-zA-Z_" "_")
ax_configure_ax_var=$(eval "echo \"\$ax_sub_configure_$ax_var\"")
if test "$no_recursion" != "yes" -a "x$ax_configure_ax_var" = "xyes"; then
AC_SUBST([subdirs_extra], ["$subdirs_extra $ax_dir"])
ax_msg="=== configuring in $ax_dir ($(pwd)/$ax_dir)"
_AS_ECHO_LOG([$ax_msg])
_AS_ECHO([$ax_msg])
AS_MKDIR_P(["$ax_dir"])
_AC_SRCDIRS(["$ax_dir"])
ax_popdir=$(pwd)
cd "$ax_dir"
# Check for guested configure; otherwise get Cygnus style configure.
if test -f "$ac_srcdir/configure.gnu"; then
ax_sub_configure=$ac_srcdir/configure.gnu
elif test -f "$ac_srcdir/configure"; then
ax_sub_configure=$ac_srcdir/configure
elif test -f "$ac_srcdir/configure.in"; then
# This should be Cygnus configure.
ax_sub_configure=$ac_aux_dir/configure
else
AC_MSG_WARN([no configuration information is in $ax_dir])
ax_sub_configure=
fi
if test -n "$ax_sub_configure"; then
# Get the configure arguments for the current configure.
eval "ax_sub_configure_args=\"\$ax_sub_configure_args_${ax_var}\""
# Always prepend --prefix to ensure using the same prefix
# in subdir configurations.
ax_arg="--prefix=$prefix"
case $ax_arg in
*\'*) ax_arg=$(AS_ECHO(["$ax_arg"]) | sed "s/'/'\\\\\\\\''/g");;
esac
ax_sub_configure_args="'$ax_arg' $ax_sub_configure_args"
if test "$silent" = yes; then
ax_sub_configure_args="--silent $ax_sub_configure_args"
fi
# Make the cache file name correct relative to the subdirectory.
case $cache_file in
[[\\/]]* | ?:[[\\/]]* )
ax_sub_cache_file=$cache_file ;;
*) # Relative name.
ax_sub_cache_file=$ac_top_build_prefix$cache_file ;;
esac
AC_MSG_NOTICE([running $SHELL $ax_sub_configure $ax_sub_configure_args --cache-file=$ac_sub_cache_file])
eval "\$SHELL \"$ax_sub_configure\" $ax_sub_configure_args --cache-file=\"$ax_sub_cache_file\"" \
|| AC_MSG_ERROR([$ax_sub_configure failed for $ax_dir])
fi
cd "$ax_popdir"
fi
])
])
])

View file

@ -37,13 +37,13 @@ AC_DEFUN([_AC_BAKEFILE_LANG_COMPILER],
AC_CACHE_CHECK(
[whether we are using the $1 $2 compiler],
[bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3],
[AC_TRY_COMPILE(
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
[],
[
#ifndef $3
choke me
#endif
],
])],
[bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3=yes],
[bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3=no]
)
@ -67,13 +67,13 @@ AC_DEFUN([_AC_BAKEFILE_LANG_COMPILER_LATER_THAN],
AC_CACHE_CHECK(
[whether we are using $1 $2 compiler v$5 or later],
[bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3[]_lt_[]$4],
[AC_TRY_COMPILE(
[AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
[],
[
#ifndef $3 || $3 < $4
choke me
#endif
],
])],
[bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3[]_lt_[]$4=yes],
[bakefile_cv_[]_AC_LANG_ABBREV[]_compiler_[]$3[]_lt_[]$4=no]
)

View file

@ -27,7 +27,7 @@ dnl
dnl ---------------------------------------------------------------------------
dnl Lots of compiler & linker detection code contained here was taken from
dnl wxWidgets configure.in script (see https://www.wxwidgets.org)
dnl wxWidgets configure script (see https://www.wxwidgets.org)
dnl ---------------------------------------------------------------------------
@ -44,7 +44,7 @@ AC_DEFUN([AC_BAKEFILE_GNUMAKE],
AC_CACHE_CHECK([if make is GNU make], bakefile_cv_prog_makeisgnu,
[
if ( ${SHELL-sh} -c "${MAKE-make} --version" 2> /dev/null |
egrep -s GNU > /dev/null); then
grep -sE GNU > /dev/null); then
bakefile_cv_prog_makeisgnu="yes"
else
bakefile_cv_prog_makeisgnu="no"
@ -76,7 +76,7 @@ AC_DEFUN([AC_BAKEFILE_PLATFORM],
if test "x$BAKEFILE_FORCE_PLATFORM" = "x"; then
case "${BAKEFILE_HOST}" in
*-*-mingw32* )
*-*-mingw* )
PLATFORM_WIN32=1
;;
*-*-darwin* )
@ -197,7 +197,7 @@ AC_DEFUN([AC_BAKEFILE_SUFFIXES],
DLLPREFIX="cyg"
dlldir="$bindir"
;;
*-*-mingw32* )
*-*-mingw* )
SO_SUFFIX="dll"
SO_SUFFIX_MODULE="dll"
DLLIMP_SUFFIX="dll.a"
@ -282,48 +282,13 @@ AC_DEFUN([AC_BAKEFILE_SHARED_LD],
;;
*-*-darwin* )
AC_BAKEFILE_CREATE_FILE_SHARED_LD_SH
chmod +x shared-ld-sh
SHARED_LD_MODULE_CC="\${CC} -bundle -single_module -headerpad_max_install_names -o"
SHARED_LD_MODULE_CXX="\${CXX} -bundle -single_module -headerpad_max_install_names -o"
SHARED_LD_MODULE_CC="`pwd`/shared-ld-sh -bundle -headerpad_max_install_names -o"
SHARED_LD_MODULE_CXX="CXX=\"\$(CXX)\" $SHARED_LD_MODULE_CC"
SHARED_LD_CC="\${CC} -dynamiclib -single_module -headerpad_max_install_names -o"
SHARED_LD_CXX="\${CXX} -dynamiclib -single_module -headerpad_max_install_names -o"
dnl Most apps benefit from being fully binded (its faster and static
dnl variables initialized at startup work).
dnl This can be done either with the exe linker flag -Wl,-bind_at_load
dnl or with a double stage link in order to create a single module
dnl "-init _wxWindowsDylibInit" not useful with lazy linking solved
dnl If using newer dev tools then there is a -single_module flag that
dnl we can use to do this for dylibs, otherwise we'll need to use a helper
dnl script. Check the version of gcc to see which way we can go:
AC_CACHE_CHECK([for gcc 3.1 or later], bakefile_cv_gcc31, [
AC_TRY_COMPILE([],
[
#if (__GNUC__ < 3) || \
((__GNUC__ == 3) && (__GNUC_MINOR__ < 1))
This is old gcc
#endif
],
[
bakefile_cv_gcc31=yes
],
[
bakefile_cv_gcc31=no
]
)
])
if test "$bakefile_cv_gcc31" = "no"; then
dnl Use the shared-ld-sh helper script
SHARED_LD_CC="`pwd`/shared-ld-sh -dynamiclib -headerpad_max_install_names -o"
SHARED_LD_CXX="$SHARED_LD_CC"
else
dnl Use the -single_module flag and let the linker do it for us
SHARED_LD_CC="\${CC} -dynamiclib -single_module -headerpad_max_install_names -o"
SHARED_LD_CXX="\${CXX} -dynamiclib -single_module -headerpad_max_install_names -o"
fi
if test "x$GCC" == "xyes"; then
if test "x$GCC" = "xyes"; then
PIC_FLAG="-dynamic -fPIC"
fi
if test "x$XLCC" = "xyes"; then
@ -377,7 +342,7 @@ AC_DEFUN([AC_BAKEFILE_SHARED_LD],
fi
;;
*-*-cygwin* | *-*-mingw32* )
*-*-cygwin* | *-*-mingw32* | *-*-mingw64* )
PIC_FLAG=""
SHARED_LD_CC="\$(CC) -shared -o"
SHARED_LD_CXX="\$(CXX) -shared -o"
@ -385,7 +350,7 @@ AC_DEFUN([AC_BAKEFILE_SHARED_LD],
;;
powerpc-apple-macos* | \
*-*-freebsd* | *-*-openbsd* | *-*-netbsd* | *-*-gnu* | *-*-k*bsd*-gnu | \
*-*-freebsd* | *-*-openbsd* | *-*-haiku* | *-*-netbsd* | *-*-gnu* | *-*-k*bsd*-gnu | \
*-*-mirbsd* | \
*-*-sunos4* | \
*-*-osf* | \
@ -435,7 +400,7 @@ AC_DEFUN([AC_BAKEFILE_SHARED_VERSIONS],
SONAME_FLAG=
case "${BAKEFILE_HOST}" in
*-*-linux* | *-*-freebsd* | *-*-openbsd* | *-*-netbsd* | \
*-*-linux* | *-*-freebsd* | *-*-openbsd* | *-*-haiku* | *-*-netbsd* | \
*-*-k*bsd*-gnu | *-*-mirbsd* | *-*-gnu* )
if test "x$SUNCXX" = "xyes"; then
SONAME_FLAG="-h "
@ -554,7 +519,7 @@ AC_DEFUN([AC_BAKEFILE_CHECK_BASIC_STUFF],
if test "x$SUNCXX" = "xyes"; then
dnl Sun C++ compiler requires special way of creating static libs;
dnl see here for more details:
dnl https://sourceforge.net/tracker/?func=detail&atid=109863&aid=1229751&group_id=9863
dnl https://github.com/wxWidgets/wxWidgets/issues/2639
AR=$CXX
AROPTIONS="-xar -o"
AC_SUBST(AR)
@ -572,13 +537,13 @@ AC_DEFUN([AC_BAKEFILE_CHECK_BASIC_STUFF],
AC_CHECK_TOOL(STRIP, strip, :)
AC_CHECK_TOOL(NM, nm, :)
dnl Don't use `install -d`, see https://trac.wxwidgets.org/ticket/13452
dnl Don't use `install -d`, see https://github.com/wxWidgets/wxWidgets/issues/13452
INSTALL_DIR="mkdir -p"
AC_SUBST(INSTALL_DIR)
LDFLAGS_GUI=
case ${BAKEFILE_HOST} in
*-*-cygwin* | *-*-mingw32* )
*-*-cygwin* | *-*-mingw32* | *-*-mingw64* )
LDFLAGS_GUI="-mwindows"
esac
AC_SUBST(LDFLAGS_GUI)
@ -594,7 +559,7 @@ dnl ---------------------------------------------------------------------------
AC_DEFUN([AC_BAKEFILE_RES_COMPILERS],
[
case ${BAKEFILE_HOST} in
*-*-cygwin* | *-*-mingw32* )
*-*-cygwin* | *-*-mingw32* | *-*-mingw64* )
dnl Check for win32 resources compiler:
AC_CHECK_TOOL(WINDRES, windres)
;;
@ -635,7 +600,7 @@ AC_DEFUN([AC_BAKEFILE_PRECOMP_HEADERS],
if test "x$GCC" = "xyes"; then
dnl test if we have gcc-3.4:
AC_MSG_CHECKING([if the compiler supports precompiled headers])
AC_TRY_COMPILE([],
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([],
[
#if !defined(__GNUC__) || !defined(__GNUC_MINOR__)
There is no PCH support
@ -649,7 +614,7 @@ AC_DEFUN([AC_BAKEFILE_PRECOMP_HEADERS],
( defined(__INTEL_COMPILER) )
There is no PCH support
#endif
],
])],
[
AC_MSG_RESULT([yes])
GCC_PCH=1
@ -693,7 +658,7 @@ AC_DEFUN([AC_BAKEFILE_PRECOMP_HEADERS],
dnl ---------------------------------------------------------------------------
dnl AC_BAKEFILE([autoconf_inc.m4 inclusion])
dnl
dnl To be used in configure.in of any project using Bakefile-generated mks
dnl To be used in configure.ac of any project using Bakefile-generated mks
dnl
dnl Behaviour can be modified by setting following variables:
dnl BAKEFILE_CHECK_BASICS set to "no" if you don't want bakefile to
@ -745,13 +710,13 @@ AC_DEFUN([AC_BAKEFILE],
AC_SUBST(OBJCXXFLAGS)
BAKEFILE_BAKEFILE_M4_VERSION="0.2.11"
BAKEFILE_BAKEFILE_M4_VERSION="0.2.13"
dnl includes autoconf_inc.m4:
$1
if test "$BAKEFILE_AUTOCONF_INC_M4_VERSION" = "" ; then
AC_MSG_ERROR([No version found in autoconf_inc.m4 - bakefile macro was changed to take additional argument, perhaps configure.in wasn't updated (see the documentation)?])
AC_MSG_ERROR([No version found in autoconf_inc.m4 - bakefile macro was changed to take additional argument, perhaps configure.ac wasn't updated (see the documentation)?])
fi
if test "$BAKEFILE_BAKEFILE_M4_VERSION" != "$BAKEFILE_AUTOCONF_INC_M4_VERSION" ; then
@ -869,117 +834,6 @@ EOF
dnl ===================== bk-deps ends here =====================
])
AC_DEFUN([AC_BAKEFILE_CREATE_FILE_SHARED_LD_SH],
[
dnl ===================== shared-ld-sh begins here =====================
dnl (Created by merge-scripts.py from shared-ld-sh
dnl file do not edit here!)
D='$'
cat <<EOF >shared-ld-sh
#!/bin/sh
#-----------------------------------------------------------------------------
#-- Name: distrib/mac/shared-ld-sh
#-- Purpose: Link a mach-o dynamic shared library for Darwin / Mac OS X
#-- Author: Gilles Depeyrot
#-- Copyright: (c) 2002 Gilles Depeyrot
#-- Licence: any use permitted
#-----------------------------------------------------------------------------
verbose=0
args=""
objects=""
linking_flag="-dynamiclib"
ldargs="-r -keep_private_externs -nostdlib"
if test "x${D}CXX" = "x"; then
CXX="c++"
fi
while test ${D}# -gt 0; do
case ${D}1 in
-v)
verbose=1
;;
-o|-compatibility_version|-current_version|-framework|-undefined|-install_name)
# collect these options and values
args="${D}{args} ${D}1 ${D}2"
shift
;;
-arch|-isysroot)
# collect these options and values
ldargs="${D}{ldargs} ${D}1 ${D}2"
shift
;;
-s|-Wl,*)
# collect these load args
ldargs="${D}{ldargs} ${D}1"
;;
-l*|-L*|-flat_namespace|-headerpad_max_install_names)
# collect these options
args="${D}{args} ${D}1"
;;
-dynamiclib|-bundle)
linking_flag="${D}1"
;;
-*)
echo "shared-ld: unhandled option '${D}1'"
exit 1
;;
*.o | *.a | *.dylib)
# collect object files
objects="${D}{objects} ${D}1"
;;
*)
echo "shared-ld: unhandled argument '${D}1'"
exit 1
;;
esac
shift
done
status=0
#
# Link one module containing all the others
#
if test ${D}{verbose} = 1; then
echo "${D}CXX ${D}{ldargs} ${D}{objects} -o master.${D}${D}.o"
fi
${D}CXX ${D}{ldargs} ${D}{objects} -o master.${D}${D}.o
status=${D}?
#
# Link the shared library from the single module created, but only if the
# previous command didn't fail:
#
if test ${D}{status} = 0; then
if test ${D}{verbose} = 1; then
echo "${D}CXX ${D}{linking_flag} master.${D}${D}.o ${D}{args}"
fi
${D}CXX ${D}{linking_flag} master.${D}${D}.o ${D}{args}
status=${D}?
fi
#
# Remove intermediate module
#
rm -f master.${D}${D}.o
exit ${D}status
EOF
dnl ===================== shared-ld-sh ends here =====================
])
AC_DEFUN([AC_BAKEFILE_CREATE_FILE_BK_MAKE_PCH],
[
dnl ===================== bk-make-pch begins here =====================

View file

@ -1,23 +0,0 @@
dnl Perform a check for a GStreamer element using gst-inspect
dnl Thomas Vander Stichele <thomas at apestaart dot org>
dnl Last modification: 25/01/2005
dnl AM_GST_ELEMENT_CHECK(ELEMENT-NAME, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND)
AC_DEFUN([AM_GST_ELEMENT_CHECK],
[
if test "x$GST_INSPECT" == "x"; then
AC_CHECK_PROG(GST_INSPECT, gst-inspect, gst-inspect, [])
fi
if test "x$GST_INSPECT" != "x"; then
AC_MSG_CHECKING(GStreamer element $1)
if [ $GST_INSPECT $1 > /dev/null 2> /dev/null ]; then
AC_MSG_RESULT(found.)
$2
else
AC_MSG_RESULT(not found.)
$3
fi
fi
])

View file

@ -1,185 +0,0 @@
# Configure paths for GTK+
# Owen Taylor 1997-2001
dnl AM_PATH_GTK_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
dnl Test for GTK+, and define GTK_CFLAGS and GTK_LIBS, if gthread is specified in MODULES,
dnl pass to pkg-config
dnl
AC_DEFUN([AM_PATH_GTK_2_0],
[dnl
dnl Get the cflags and libraries from pkg-config
dnl
AC_ARG_ENABLE(gtktest, [ --disable-gtktest do not try to compile and run a test GTK+ program],
, enable_gtktest=yes)
pkg_config_args=gtk+-2.0
for module in . $4
do
case "$module" in
gthread)
pkg_config_args="$pkg_config_args gthread-2.0"
;;
esac
done
no_gtk=""
AC_REQUIRE([PKG_PROG_PKG_CONFIG])
PKG_PROG_PKG_CONFIG([0.7])
min_gtk_version=ifelse([$1], ,2.0.0,$1)
AC_MSG_CHECKING(for GTK+ - version >= $min_gtk_version)
if test x$PKG_CONFIG != xno ; then
## don't try to run the test against uninstalled libtool libs
if $PKG_CONFIG --uninstalled $pkg_config_args; then
echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH"
enable_gtktest=no
fi
if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then
:
else
no_gtk=yes
fi
fi
if test x"$no_gtk" = x ; then
GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags`
GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs`
gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
if test "x$enable_gtktest" = "xyes" ; then
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $GTK_CFLAGS"
LIBS="$GTK_LIBS $LIBS"
dnl
dnl Now check if the installed GTK+ is sufficiently new. (Also sanity
dnl checks the results of pkg-config to some extent)
dnl
rm -f conf.gtktest
AC_TRY_RUN([
#include <gtk/gtk.h>
#include <stdio.h>
#include <stdlib.h>
int
main ()
{
int major, minor, micro;
char *tmp_version;
fclose (fopen ("conf.gtktest", "w"));
/* HP/UX 9 (%@#!) writes to sscanf strings */
tmp_version = g_strdup("$min_gtk_version");
if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
printf("%s, bad version string\n", "$min_gtk_version");
exit(1);
}
if ((gtk_major_version != $gtk_config_major_version) ||
(gtk_minor_version != $gtk_config_minor_version) ||
(gtk_micro_version != $gtk_config_micro_version))
{
printf("\n*** 'pkg-config --modversion gtk+-2.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
$gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
gtk_major_version, gtk_minor_version, gtk_micro_version);
printf ("*** was found! If pkg-config was correct, then it is best\n");
printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
printf("*** required on your system.\n");
printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n");
printf("*** to point to the correct configuration files\n");
}
else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
(gtk_minor_version != GTK_MINOR_VERSION) ||
(gtk_micro_version != GTK_MICRO_VERSION))
{
printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
printf("*** library (version %d.%d.%d)\n",
gtk_major_version, gtk_minor_version, gtk_micro_version);
}
else
{
if ((gtk_major_version > major) ||
((gtk_major_version == major) && (gtk_minor_version > minor)) ||
((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
{
return 0;
}
else
{
printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
gtk_major_version, gtk_minor_version, gtk_micro_version);
printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
major, minor, micro);
printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
printf("***\n");
printf("*** If you have already installed a sufficiently new version, this error\n");
printf("*** probably means that the wrong copy of the pkg-config shell script is\n");
printf("*** being found. The easiest way to fix this is to remove the old version\n");
printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n");
printf("*** correct copy of pkg-config. (In this case, you will have to\n");
printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
printf("*** so that the correct libraries are found at run-time))\n");
}
}
return 1;
}
],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
if test "x$no_gtk" = x ; then
AC_MSG_RESULT(yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version))
ifelse([$2], , :, [$2])
else
AC_MSG_RESULT(no)
if test "$PKG_CONFIG" = "no" ; then
echo "*** A new enough version of pkg-config was not found."
echo "*** See http://pkgconfig.sourceforge.net"
else
if test -f conf.gtktest ; then
:
else
echo "*** Could not run GTK+ test program, checking why..."
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $GTK_CFLAGS"
LIBS="$LIBS $GTK_LIBS"
AC_TRY_LINK([
#include <gtk/gtk.h>
#include <stdio.h>
], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
[ echo "*** The test program compiled, but did not run. This usually means"
echo "*** that the run-time linker is not finding GTK+ or finding the wrong"
echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your"
echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
echo "*** to the installed location Also, make sure you have run ldconfig if that"
echo "*** is required on your system"
echo "***"
echo "*** If you have an old version installed, it is best to remove it, although"
echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
[ echo "*** The test program failed to compile or link. See the file config.log for the"
echo "*** exact error that occured. This usually means GTK+ is incorrectly installed."])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
GTK_CFLAGS=""
GTK_LIBS=""
ifelse([$3], , :, [$3])
fi
AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
rm -f conf.gtktest
])

View file

@ -1,217 +0,0 @@
# Configure paths for GTK+
# Owen Taylor 1997-2001
dnl AM_PATH_GTK_3_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
dnl Test for GTK+, and define GTK_CFLAGS and GTK_LIBS, if gthread is specified in MODULES,
dnl pass to pkg-config
dnl
AC_DEFUN([AM_PATH_GTK_3_0],
[m4_warn([obsolete], [AM_PATH_GTK_3_0 is deprecated, use PKG_CHECK_MODULES([GTK], [gtk+-3.0]) instead])
dnl Get the cflags and libraries from pkg-config
dnl
AC_ARG_ENABLE(gtktest, [ --disable-gtktest do not try to compile and run a test GTK+ program],
, enable_gtktest=yes)
min_gtk_version=ifelse([$1], [], [3.0.0], [$1])
pkg_config_args="gtk+-3.0 >= $min_gtk_version"
for module in . $4
do
case "$module" in
gthread)
pkg_config_args="$pkg_config_args gthread-2.0"
;;
esac
done
no_gtk=""
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
if test x$PKG_CONFIG != xno ; then
if $PKG_CONFIG --atleast-pkgconfig-version 0.7 ; then
:
else
echo "*** pkg-config too old; version 0.7 or better required."
no_gtk=yes
PKG_CONFIG=no
fi
else
no_gtk=yes
fi
AC_MSG_CHECKING(for GTK+ - version >= $min_gtk_version)
if test x$PKG_CONFIG != xno ; then
## don't try to run the test against uninstalled libtool libs
if $PKG_CONFIG --uninstalled $pkg_config_args; then
echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH"
enable_gtktest=no
fi
if $PKG_CONFIG $pkg_config_args; then
:
else
no_gtk=yes
fi
fi
if test x"$no_gtk" = x ; then
GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags`
GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs`
gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-3.0 | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-3.0 | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-3.0 | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
if test "x$enable_gtktest" = "xyes" ; then
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $GTK_CFLAGS"
LIBS="$GTK_LIBS $LIBS"
dnl
dnl Now check if the installed GTK+ is sufficiently new. (Also sanity
dnl checks the results of pkg-config to some extent)
dnl
rm -f conf.gtktest
AC_TRY_RUN([
#include <gtk/gtk.h>
#include <stdio.h>
#include <stdlib.h>
int
main ()
{
unsigned int major, minor, micro;
fclose (fopen ("conf.gtktest", "w"));
if (sscanf("$min_gtk_version", "%u.%u.%u", &major, &minor, &micro) != 3) {
printf("%s, bad version string\n", "$min_gtk_version");
exit(1);
}
if ((gtk_major_version != $gtk_config_major_version) ||
(gtk_minor_version != $gtk_config_minor_version) ||
(gtk_micro_version != $gtk_config_micro_version))
{
printf("\n*** 'pkg-config --modversion gtk+-3.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
$gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
gtk_major_version, gtk_minor_version, gtk_micro_version);
printf ("*** was found! If pkg-config was correct, then it is best\n");
printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
printf("*** required on your system.\n");
printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n");
printf("*** to point to the correct configuration files\n");
}
else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
(gtk_minor_version != GTK_MINOR_VERSION) ||
(gtk_micro_version != GTK_MICRO_VERSION))
{
printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
printf("*** library (version %d.%d.%d)\n",
gtk_major_version, gtk_minor_version, gtk_micro_version);
}
else
{
if ((gtk_major_version > major) ||
((gtk_major_version == major) && (gtk_minor_version > minor)) ||
((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
{
return 0;
}
else
{
printf("\n*** An old version of GTK+ (%u.%u.%u) was found.\n",
gtk_major_version, gtk_minor_version, gtk_micro_version);
printf("*** You need a version of GTK+ newer than %u.%u.%u. The latest version of\n",
major, minor, micro);
printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
printf("***\n");
printf("*** If you have already installed a sufficiently new version, this error\n");
printf("*** probably means that the wrong copy of the pkg-config shell script is\n");
printf("*** being found. The easiest way to fix this is to remove the old version\n");
printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n");
printf("*** correct copy of pkg-config. (In this case, you will have to\n");
printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
printf("*** so that the correct libraries are found at run-time))\n");
}
}
return 1;
}
],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
if test "x$no_gtk" = x ; then
AC_MSG_RESULT(yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version))
ifelse([$2], , :, [$2])
else
AC_MSG_RESULT(no)
if test "$PKG_CONFIG" = "no" ; then
echo "*** A new enough version of pkg-config was not found."
echo "*** See http://pkgconfig.sourceforge.net"
else
if test -f conf.gtktest ; then
:
else
echo "*** Could not run GTK+ test program, checking why..."
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $GTK_CFLAGS"
LIBS="$LIBS $GTK_LIBS"
AC_TRY_LINK([
#include <gtk/gtk.h>
#include <stdio.h>
], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
[ echo "*** The test program compiled, but did not run. This usually means"
echo "*** that the run-time linker is not finding GTK+ or finding the wrong"
echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your"
echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
echo "*** to the installed location Also, make sure you have run ldconfig if that"
echo "*** is required on your system"
echo "***"
echo "*** If you have an old version installed, it is best to remove it, although"
echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
[ echo "*** The test program failed to compile or link. See the file config.log for the"
echo "*** exact error that occurred. This usually means GTK+ is incorrectly installed."])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
GTK_CFLAGS=""
GTK_LIBS=""
ifelse([$3], , :, [$3])
fi
AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
rm -f conf.gtktest
])
dnl GTK_CHECK_BACKEND(BACKEND-NAME [, MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
dnl Tests for BACKEND-NAME in the GTK targets list
dnl
AC_DEFUN([GTK_CHECK_BACKEND],
[m4_warn([obsolete], [GTK_CHECK_BACKEND is deprecated, use PKG_CHECK_MODULES([GTK_X11], [gtk+-x11-3.0]) or similar instead])
pkg_config_args=ifelse([$1],,gtk+-3.0, gtk+-$1-3.0)
min_gtk_version=ifelse([$2],,3.0.0,$2)
pkg_config_args="$pkg_config_args >= $min_gtk_version"
AC_PATH_PROG(PKG_CONFIG, [pkg-config], [AC_MSG_ERROR([No pkg-config found])])
if $PKG_CONFIG $pkg_config_args ; then
target_found=yes
else
target_found=no
fi
if test "x$target_found" = "xno"; then
ifelse([$4],,[AC_MSG_ERROR([Backend $backend not found.])],[$4])
else
ifelse([$3],,[:],[$3])
fi
])

View file

@ -1,217 +0,0 @@
# Configure paths for GTK+
# Owen Taylor 1997-2001
dnl AM_PATH_GTK_4_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
dnl Test for GTK+, and define GTK_CFLAGS and GTK_LIBS, if gthread is specified in MODULES,
dnl pass to pkg-config
dnl
AC_DEFUN([AM_PATH_GTK_4_0],
[m4_warn([obsolete], [AM_PATH_GTK_4_0 is deprecated, use PKG_CHECK_MODULES([GTK], [gtk+-4.0]) instead])
dnl Get the cflags and libraries from pkg-config
dnl
AC_ARG_ENABLE(gtktest, [ --disable-gtktest do not try to compile and run a test GTK+ program],
, enable_gtktest=yes)
min_gtk_version=ifelse([$1], [], [3.90.0], [$1])
pkg_config_args="gtk+-4.0 >= $min_gtk_version"
for module in . $4
do
case "$module" in
gthread)
pkg_config_args="$pkg_config_args gthread-2.0"
;;
esac
done
no_gtk=""
AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
if test x$PKG_CONFIG != xno ; then
if $PKG_CONFIG --atleast-pkgconfig-version 0.7 ; then
:
else
echo "*** pkg-config too old; version 0.7 or better required."
no_gtk=yes
PKG_CONFIG=no
fi
else
no_gtk=yes
fi
AC_MSG_CHECKING(for GTK+ - version >= $min_gtk_version)
if test x$PKG_CONFIG != xno ; then
## don't try to run the test against uninstalled libtool libs
if $PKG_CONFIG --uninstalled $pkg_config_args; then
echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH"
enable_gtktest=no
fi
if $PKG_CONFIG $pkg_config_args; then
:
else
no_gtk=yes
fi
fi
if test x"$no_gtk" = x ; then
GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags`
GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs`
gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-4.0 | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-4.0 | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-4.0 | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
if test "x$enable_gtktest" = "xyes" ; then
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $GTK_CFLAGS"
LIBS="$GTK_LIBS $LIBS"
dnl
dnl Now check if the installed GTK+ is sufficiently new. (Also sanity
dnl checks the results of pkg-config to some extent)
dnl
rm -f conf.gtktest
AC_TRY_RUN([
#include <gtk/gtk.h>
#include <stdio.h>
#include <stdlib.h>
int
main ()
{
unsigned int major, minor, micro;
fclose (fopen ("conf.gtktest", "w"));
if (sscanf("$min_gtk_version", "%u.%u.%u", &major, &minor, &micro) != 3) {
printf("%s, bad version string\n", "$min_gtk_version");
exit(1);
}
if ((gtk_get_major_version() != $gtk_config_major_version) ||
(gtk_get_minor_version() != $gtk_config_minor_version) ||
(gtk_get_micro_version() != $gtk_config_micro_version))
{
printf("\n*** 'pkg-config --modversion gtk+-4.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
$gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
gtk_get_major_version(), gtk_get_minor_version(), gtk_get_micro_version());
printf ("*** was found! If pkg-config was correct, then it is best\n");
printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
printf("*** required on your system.\n");
printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n");
printf("*** to point to the correct configuration files\n");
}
else if ((gtk_get_major_version() != GTK_MAJOR_VERSION) ||
(gtk_get_minor_version() != GTK_MINOR_VERSION) ||
(gtk_get_micro_version() != GTK_MICRO_VERSION))
{
printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
printf("*** library (version %d.%d.%d)\n",
gtk_get_major_version(), gtk_get_minor_version(), gtk_get_micro_version());
}
else
{
if ((gtk_get_major_version() > major) ||
((gtk_get_major_version() == major) && (gtk_get_minor_version() > minor)) ||
((gtk_get_major_version() == major) && (gtk_get_minor_version() == minor) && (gtk_get_micro_version() >= micro)))
{
return 0;
}
else
{
printf("\n*** An old version of GTK+ (%u.%u.%u) was found.\n",
gtk_get_major_version(), gtk_get_minor_version(), gtk_get_micro_version());
printf("*** You need a version of GTK+ newer than %u.%u.%u. The latest version of\n",
major, minor, micro);
printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
printf("***\n");
printf("*** If you have already installed a sufficiently new version, this error\n");
printf("*** probably means that the wrong copy of the pkg-config shell script is\n");
printf("*** being found. The easiest way to fix this is to remove the old version\n");
printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n");
printf("*** correct copy of pkg-config. (In this case, you will have to\n");
printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
printf("*** so that the correct libraries are found at run-time))\n");
}
}
return 1;
}
],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
if test "x$no_gtk" = x ; then
AC_MSG_RESULT(yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version))
ifelse([$2], , :, [$2])
else
AC_MSG_RESULT(no)
if test "$PKG_CONFIG" = "no" ; then
echo "*** A new enough version of pkg-config was not found."
echo "*** See http://pkgconfig.sourceforge.net"
else
if test -f conf.gtktest ; then
:
else
echo "*** Could not run GTK+ test program, checking why..."
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $GTK_CFLAGS"
LIBS="$LIBS $GTK_LIBS"
AC_TRY_LINK([
#include <gtk/gtk.h>
#include <stdio.h>
], [ return ((gtk_get_major_version()) || (gtk_get_minor_version()) || (gtk_get_micro_version())); ],
[ echo "*** The test program compiled, but did not run. This usually means"
echo "*** that the run-time linker is not finding GTK+ or finding the wrong"
echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your"
echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
echo "*** to the installed location Also, make sure you have run ldconfig if that"
echo "*** is required on your system"
echo "***"
echo "*** If you have an old version installed, it is best to remove it, although"
echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
[ echo "*** The test program failed to compile or link. See the file config.log for the"
echo "*** exact error that occurred. This usually means GTK+ is incorrectly installed."])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
GTK_CFLAGS=""
GTK_LIBS=""
ifelse([$3], , :, [$3])
fi
AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
rm -f conf.gtktest
])
dnl GTK_CHECK_BACKEND(BACKEND-NAME [, MINIMUM-VERSION [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
dnl Tests for BACKEND-NAME in the GTK targets list
dnl
AC_DEFUN([GTK_CHECK_BACKEND],
[m4_warn([obsolete], [GTK_CHECK_BACKEND is deprecated, use PKG_CHECK_MODULES([GTK_X11], [gtk+-x11-4.0]) or similar instead])
pkg_config_args=ifelse([$1],,gtk+-4.0, gtk+-$1-4.0)
min_gtk_version=ifelse([$2],,4.0.0,$2)
pkg_config_args="$pkg_config_args >= $min_gtk_version"
AC_PATH_PROG(PKG_CONFIG, [pkg-config], [AC_MSG_ERROR([No pkg-config found])])
if $PKG_CONFIG $pkg_config_args ; then
target_found=yes
else
target_found=no
fi
if test "x$target_found" = "xno"; then
ifelse([$4],,[AC_MSG_ERROR([Backend $backend not found.])],[$4])
else
ifelse([$3],,[:],[$3])
fi
])

View file

@ -1,194 +0,0 @@
# Configure paths for GTK+
# Owen Taylor 97-11-3
dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
dnl
AC_DEFUN([AM_PATH_GTK],
[dnl
dnl Get the cflags and libraries from the gtk-config script
dnl
AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
gtk_config_prefix="$withval", gtk_config_prefix="")
AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
, enable_gtktest=yes)
for module in . $4
do
case "$module" in
gthread)
gtk_config_args="$gtk_config_args gthread"
;;
esac
done
if test x$gtk_config_exec_prefix != x ; then
gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
if test x${GTK_CONFIG+set} != xset ; then
GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
fi
fi
if test x$gtk_config_prefix != x ; then
gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
if test x${GTK_CONFIG+set} != xset ; then
GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
fi
fi
AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
min_gtk_version=ifelse([$1], ,0.99.7,$1)
AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
no_gtk=""
if test "$GTK_CONFIG" = "no" ; then
no_gtk=yes
else
GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
if test "x$enable_gtktest" = "xyes" ; then
ac_save_CFLAGS="$CFLAGS"
ac_save_LIBS="$LIBS"
CFLAGS="$CFLAGS $GTK_CFLAGS"
LIBS="$GTK_LIBS $LIBS"
dnl
dnl Now check if the installed GTK is sufficiently new. (Also sanity
dnl checks the results of gtk-config to some extent
dnl
rm -f conf.gtktest
AC_TRY_RUN([
#include <gtk/gtk.h>
#include <stdio.h>
#include <stdlib.h>
int
main ()
{
int major, minor, micro;
char *tmp_version;
system ("touch conf.gtktest");
/* HP/UX 9 (%@#!) writes to sscanf strings */
tmp_version = g_strdup("$min_gtk_version");
if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
printf("%s, bad version string\n", "$min_gtk_version");
exit(1);
}
if ((gtk_major_version != $gtk_config_major_version) ||
(gtk_minor_version != $gtk_config_minor_version) ||
(gtk_micro_version != $gtk_config_micro_version))
{
printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
$gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
gtk_major_version, gtk_minor_version, gtk_micro_version);
printf ("*** was found! If gtk-config was correct, then it is best\n");
printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
printf("*** by modifying your LD_LIBRARY_PATH environment variable, or by editing\n");
printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
printf("*** required on your system.\n");
printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
printf("*** before re-running configure\n");
}
#if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
(gtk_minor_version != GTK_MINOR_VERSION) ||
(gtk_micro_version != GTK_MICRO_VERSION))
{
printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
printf("*** library (version %d.%d.%d)\n",
gtk_major_version, gtk_minor_version, gtk_micro_version);
}
#endif /* defined (GTK_MAJOR_VERSION) ... */
else
{
if ((gtk_major_version > major) ||
((gtk_major_version == major) && (gtk_minor_version > minor)) ||
((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
{
return 0;
}
else
{
printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
gtk_major_version, gtk_minor_version, gtk_micro_version);
printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
major, minor, micro);
printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
printf("***\n");
printf("*** If you have already installed a sufficiently new version, this error\n");
printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
printf("*** being found. The easiest way to fix this is to remove the old version\n");
printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
printf("*** correct copy of gtk-config. (In this case, you will have to\n");
printf("*** modify your LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf\n");
printf("*** so that the correct libraries are found at run-time))\n");
}
}
return 1;
}
],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
if test "x$no_gtk" = x ; then
AC_MSG_RESULT(yes)
ifelse([$2], , :, [$2])
else
AC_MSG_RESULT(no)
if test "$GTK_CONFIG" = "no" ; then
echo "*** The gtk-config script installed by GTK could not be found"
echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
echo "*** your path, or set the GTK_CONFIG environment variable to the"
echo "*** full path to gtk-config."
else
if test -f conf.gtktest ; then
:
else
echo "*** Could not run GTK test program, checking why..."
CFLAGS="$CFLAGS $GTK_CFLAGS"
LIBS="$LIBS $GTK_LIBS"
AC_TRY_LINK([
#include <gtk/gtk.h>
#include <stdio.h>
], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
[ echo "*** The test program compiled, but did not run. This usually means"
echo "*** that the run-time linker is not finding GTK or finding the wrong"
echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
echo "*** to the installed location Also, make sure you have run ldconfig if that"
echo "*** is required on your system"
echo "***"
echo "*** If you have an old version installed, it is best to remove it, although"
echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
echo "***"
echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
echo "*** came with the system with the command"
echo "***"
echo "*** rpm --erase --nodeps gtk gtk-devel" ],
[ echo "*** The test program failed to compile or link. See the file config.log for the"
echo "*** exact error that occurred. This usually means GTK was incorrectly installed"
echo "*** or that you have moved GTK since it was installed. In the latter case, you"
echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
CFLAGS="$ac_save_CFLAGS"
LIBS="$ac_save_LIBS"
fi
fi
GTK_CFLAGS=""
GTK_LIBS=""
ifelse([$3], , :, [$3])
fi
AC_SUBST(GTK_CFLAGS)
AC_SUBST(GTK_LIBS)
rm -f conf.gtktest
])

View file

@ -63,7 +63,7 @@ dnl Now check if the installed SDL is sufficiently new. (Also sanity
dnl checks the results of sdl-config to some extent
dnl
rm -f conf.sdltest
AC_TRY_RUN([
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
@ -120,7 +120,7 @@ int main (int argc, char *argv[])
}
}
],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
]])],, no_sdl=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
CFLAGS="$ac_save_CFLAGS"
CXXFLAGS="$ac_save_CXXFLAGS"
LIBS="$ac_save_LIBS"
@ -144,7 +144,7 @@ int main (int argc, char *argv[])
CFLAGS="$CFLAGS $SDL_CFLAGS"
CXXFLAGS="$CXXFLAGS $SDL_CFLAGS"
LIBS="$LIBS $SDL_LIBS"
AC_TRY_LINK([
AC_LINK_IFELSE([AC_LANG_PROGRAM[[
#include <stdio.h>
#include "SDL.h"
@ -152,7 +152,7 @@ int main(int argc, char *argv[])
{ return 0; }
#undef main
#define main K_and_R_C_main
], [ return 0; ],
]], [ return 0; ])],
[ echo "*** The test program compiled, but did not run. This usually means"
echo "*** that the run-time linker is not finding SDL or finding the wrong"
echo "*** version of SDL. If it is not finding SDL, you'll need to set your"

View file

@ -36,7 +36,7 @@ AC_DEFUN([WX_VISIBILITY],
wx_save_CXXFLAGS="$CXXFLAGS"
CXXFLAGS="$CXXFLAGS $CXXFLAGS_VISIBILITY"
AC_LANG_PUSH(C++)
AC_TRY_COMPILE(
AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
[
/* we need gcc >= 4.0, older versions with visibility support
didn't have class visibility: */
@ -75,7 +75,7 @@ AC_DEFUN([WX_VISIBILITY],
Foo() {}
};
],
[],
[])],
wx_cv_cc_visibility=yes,
wx_cv_cc_visibility=no)
AC_LANG_POP()
@ -93,14 +93,14 @@ AC_DEFUN([WX_VISIBILITY],
CXXFLAGS="$CXXFLAGS $CXXFLAGS_VISIBILITY"
LDFLAGS="$LDFLAGS -shared -fPIC"
AC_LANG_PUSH(C++)
AC_TRY_LINK(
AC_LINK_IFELSE([AC_LANG_PROGRAM(
[
#include <string>
],
[
std::string s("hello");
return s.length();
],
])],
wx_cv_cc_broken_libstdcxx_visibility=no,
wx_cv_cc_broken_libstdcxx_visibility=yes)
AC_LANG_POP()
@ -112,7 +112,7 @@ AC_DEFUN([WX_VISIBILITY],
AC_MSG_CHECKING([whether we can work around it])
AC_CACHE_VAL(wx_cv_cc_visibility_workaround, [
AC_LANG_PUSH(C++)
AC_TRY_LINK(
AC_LINK_IFELSE([AC_LANG_PROGRAM(
[
#pragma GCC visibility push(default)
#include <string>
@ -121,7 +121,7 @@ AC_DEFUN([WX_VISIBILITY],
[
std::string s("hello");
return s.length();
],
])],
wx_cv_cc_visibility_workaround=no,
wx_cv_cc_visibility_workaround=yes)
AC_LANG_POP()

View file

@ -1,26 +0,0 @@
# Created: 2005/03/12
# Author: David Elliott
# For autoconf: Debian in their infinite wisdom decided to improve upon
# the standard autoconf 2.59 macros. Thus Debian's autoconf generates
# a totally different configure script. This fixes it to look
# mostly like Debian's. There are also some fixes pulled in from the OS/2
# fork of autoconf.
# Rule to freeze the m4 so autoconf will actually use it.
# NOTE: VERY important to cd to somewhere there are no .m4 files.
# or at least no aclocal.m4 or else autom4te helpfully picks it up.
.PHONY: all
all: autoconf/autoconf.m4f
AUTOCONF_SOURCES = \
autoconf/c.m4 \
autoconf/general.m4 \
autoconf/libs.m4 \
autoconf/status.m4
AUTOM4TE=autom4te
autoconf/autoconf.m4f: $(AUTOCONF_SOURCES)
$(AUTOM4TE) -B . --language=Autoconf --freeze --output=autoconf/autoconf.m4f

View file

@ -1,22 +0,0 @@
wxAutohacks
wxAutohacks is a way of ensuring the configure script remains consistent
between developer commits. Previous releases include a build/aclocal_include
which has now been moved into the wxWidgets build/aclocal directory.
At the moment, it is intended to be copied and or symlinked into a wxWidgets
source tree. For example, assume you have wxWidgets checked out in the
/home/myname/wxCVS/wxWidgets/ path. Then from /home/myname/wxCVS do this:
cvs -d :pserver:anoncvs@cvs.wxwidgets.org:/pack/cvsroots/wxwidgets checkout wxAutohacks
You will now have wxAutohacks in /home/myname/wxCVS/wxAutohacks/. Now go into
the wxWidgets build (/home/myname/wxCVS/wxWidgets/build/) and do this:
ln -s ../../wxAutohacks/build/autoconf_prepend-include .
From now on from the root of your wxWidgets source tree when you do this:
make -f build/autogen.mk
you will also build an autoconf.m4f file which will ensure the configure
script stays consistent.
Alternatively you can do this:
make -f build/autogen.mk AUTOHACKS_PREPEND_INCLUDE_DIR=../wxAutohacks/build/autoconf_prepend-include

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -1,496 +0,0 @@
# This file is part of Autoconf. -*- Autoconf -*-
# Checking for libraries.
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2, or (at your option)
# any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
# 02110-1301, USA.
# As a special exception, the Free Software Foundation gives unlimited
# permission to copy, distribute and modify the configure scripts that
# are the output of Autoconf. You need not follow the terms of the GNU
# General Public License when using or distributing such scripts, even
# though portions of the text of Autoconf appear in them. The GNU
# General Public License (GPL) does govern all other use of the material
# that constitutes the Autoconf program.
#
# Certain portions of the Autoconf source text are designed to be copied
# (in certain cases, depending on the input) into the output of
# Autoconf. We call these the "data" portions. The rest of the Autoconf
# source text consists of comments plus executable code that decides which
# of the data portions to output in any given case. We call these
# comments and executable code the "non-data" portions. Autoconf never
# copies any of the non-data portions into its output.
#
# This special exception to the GPL applies to versions of Autoconf
# released by the Free Software Foundation. When you make and
# distribute a modified version of Autoconf, you may extend this special
# exception to the GPL to apply to your modified version as well, *unless*
# your modified version has the potential to copy into its output some
# of the text that was the non-data portion of the version that you started
# with. (In other words, unless your change moves or copies text from
# the non-data portions to the data portions.) If your modification has
# such potential, you must delete any notice of this special exception
# to the GPL from your modified version.
#
# Written by David MacKenzie, with help from
# Franc,ois Pinard, Karl Berry, Richard Pixley, Ian Lance Taylor,
# Roland McGrath, Noah Friedman, david d zuhn, and many others.
# Table of contents
#
# 1. Generic tests for libraries
# 2. Tests for specific libraries
## --------------------------------- ##
## 1. Generic tests for libraries.## ##
## --------------------------------- ##
# AC_SEARCH_LIBS(FUNCTION, SEARCH-LIBS,
# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND],
# [OTHER-LIBRARIES])
# --------------------------------------------------------
# Search for a library defining FUNC, if it's not already available.
AC_DEFUN([AC_SEARCH_LIBS],
[AS_VAR_PUSHDEF([ac_Search], [ac_cv_search_$1])dnl
AC_CACHE_CHECK([for library containing $1], [ac_Search],
[ac_func_search_save_LIBS=$LIBS
AC_LANG_CONFTEST([AC_LANG_CALL([], [$1])])
for ac_lib in '' $2; do
if test -z "$ac_lib"; then
ac_res="none required"
else
ac_res=-l$ac_lib
LIBS="-l$ac_lib $5 $ac_func_search_save_LIBS"
fi
AC_LINK_IFELSE([], [AS_VAR_SET([ac_Search], [$ac_res])])
AS_VAR_SET_IF([ac_Search], [break])dnl
done
AS_VAR_SET_IF([ac_Search], , [AS_VAR_SET([ac_Search], [no])])dnl
rm conftest.$ac_ext
LIBS=$ac_func_search_save_LIBS])
ac_res=AS_VAR_GET([ac_Search])
AS_IF([test "$ac_res" != no],
[test "$ac_res" = "none required" || LIBS="$ac_res $LIBS"
$3],
[$4])dnl
AS_VAR_POPDEF([ac_Search])dnl
])
# AC_CHECK_LIB(LIBRARY, FUNCTION,
# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND],
# [OTHER-LIBRARIES])
# ------------------------------------------------------
#
# Use a cache variable name containing both the library and function name,
# because the test really is for library $1 defining function $2, not
# just for library $1. Separate tests with the same $1 and different $2s
# may have different results.
#
# Note that using directly AS_VAR_PUSHDEF([ac_Lib], [ac_cv_lib_$1_$2])
# is asking for troubles, since AC_CHECK_LIB($lib, fun) would give
# ac_cv_lib_$lib_fun, which is definitely not what was meant. Hence
# the AS_LITERAL_IF indirection.
#
# FIXME: This macro is extremely suspicious. It DEFINEs unconditionally,
# whatever the FUNCTION, in addition to not being a *S macro. Note
# that the cache does depend upon the function we are looking for.
#
# It is on purpose we used `ac_check_lib_save_LIBS' and not just
# `ac_save_LIBS': there are many macros which don't want to see `LIBS'
# changed but still want to use AC_CHECK_LIB, so they save `LIBS'.
# And ``ac_save_LIBS' is too tempting a name, so let's leave them some
# freedom.
AC_DEFUN([AC_CHECK_LIB],
[m4_ifval([$3], , [AH_CHECK_LIB([$1])])dnl
AS_LITERAL_IF([$1],
[AS_VAR_PUSHDEF([ac_Lib], [ac_cv_lib_$1_$2])],
[AS_VAR_PUSHDEF([ac_Lib], [ac_cv_lib_$1''_$2])])dnl
AC_CACHE_CHECK([for $2 in -l$1], [ac_Lib],
[ac_check_lib_save_LIBS=$LIBS
LIBS="-l$1 $5 $LIBS"
AC_LINK_IFELSE([AC_LANG_CALL([], [$2])],
[AS_VAR_SET([ac_Lib], [yes])],
[AS_VAR_SET([ac_Lib], [no])])
LIBS=$ac_check_lib_save_LIBS])
AS_IF([test AS_VAR_GET([ac_Lib]) = yes],
[m4_default([$3], [AC_DEFINE_UNQUOTED(AS_TR_CPP(HAVE_LIB$1))
LIBS="-l$1 $LIBS"
])],
[$4])dnl
AS_VAR_POPDEF([ac_Lib])dnl
])# AC_CHECK_LIB
# AH_CHECK_LIB(LIBNAME)
# ---------------------
m4_define([AH_CHECK_LIB],
[AH_TEMPLATE(AS_TR_CPP([HAVE_LIB$1]),
[Define to 1 if you have the `$1' library (-l$1).])])
# AC_HAVE_LIBRARY(LIBRARY,
# [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND],
# [OTHER-LIBRARIES])
# ---------------------------------------------------------
#
# This macro is equivalent to calling `AC_CHECK_LIB' with a FUNCTION
# argument of `main'. In addition, LIBRARY can be written as any of
# `foo', `-lfoo', or `libfoo.a'. In all of those cases, the compiler
# is passed `-lfoo'. However, LIBRARY cannot be a shell variable;
# it must be a literal name.
AU_DEFUN([AC_HAVE_LIBRARY],
[m4_pushdef([AC_Lib_Name],
m4_bpatsubst(m4_bpatsubst([[$1]],
[lib\([^\.]*\)\.a], [\1]),
[-l], []))dnl
AC_CHECK_LIB(AC_Lib_Name, main, [$2], [$3], [$4])dnl
ac_cv_lib_[]AC_Lib_Name()=ac_cv_lib_[]AC_Lib_Name()_main
m4_popdef([AC_Lib_Name])dnl
])
## --------------------------------- ##
## 2. Tests for specific libraries. ##
## --------------------------------- ##
# --------------------- #
# Checks for X window. #
# --------------------- #
# _AC_PATH_X_XMKMF
# ----------------
# Internal subroutine of _AC_PATH_X.
# Set ac_x_includes and/or ac_x_libraries.
m4_define([_AC_PATH_X_XMKMF],
[AC_ARG_VAR(XMKMF, [Path to xmkmf, Makefile generator for X Window System])dnl
rm -f -r conftest.dir
if mkdir conftest.dir; then
cd conftest.dir
cat >Imakefile <<'_ACEOF'
incroot:
@echo incroot='${INCROOT}'
usrlibdir:
@echo usrlibdir='${USRLIBDIR}'
libdir:
@echo libdir='${LIBDIR}'
_ACEOF
if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then
# GNU make sometimes prints "make[1]: Entering...", which would confuse us.
for ac_var in incroot usrlibdir libdir; do
eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`"
done
# Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR.
for ac_extension in a so sl; do
if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" &&
test -f "$ac_im_libdir/libX11.$ac_extension"; then
ac_im_usrlibdir=$ac_im_libdir; break
fi
done
# Screen out bogus values from the imake configuration. They are
# bogus both because they are the default anyway, and because
# using them would break gcc on systems where it needs fixed includes.
case $ac_im_incroot in
/usr/include) ac_x_includes= ;;
*) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;;
esac
case $ac_im_usrlibdir in
/usr/lib | /lib) ;;
*) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;;
esac
fi
cd ..
rm -f -r conftest.dir
fi
])# _AC_PATH_X_XMKMF
# _AC_PATH_X_DIRECT
# -----------------
# Internal subroutine of _AC_PATH_X.
# Set ac_x_includes and/or ac_x_libraries.
m4_define([_AC_PATH_X_DIRECT],
[# Standard set of common directories for X headers.
# Check X11 before X11Rn because it is often a symlink to the current release.
ac_x_header_dirs='
/usr/X11/include
/usr/X11R6/include
/usr/X11R5/include
/usr/X11R4/include
/usr/include/X11
/usr/include/X11R6
/usr/include/X11R5
/usr/include/X11R4
/usr/local/X11/include
/usr/local/X11R6/include
/usr/local/X11R5/include
/usr/local/X11R4/include
/usr/local/include/X11
/usr/local/include/X11R6
/usr/local/include/X11R5
/usr/local/include/X11R4
/usr/X386/include
/usr/x386/include
/usr/XFree86/include/X11
/usr/include
/usr/local/include
/usr/unsupported/include
/usr/athena/include
/usr/local/x11r5/include
/usr/lpp/Xamples/include
/usr/openwin/include
/usr/openwin/share/include'
if test "$ac_x_includes" = no; then
# Guess where to find include files, by looking for Xlib.h.
# First, try using that file with no special directory specified.
AC_PREPROC_IFELSE([AC_LANG_SOURCE([@%:@include <X11/Xlib.h>])],
[# We can compile using X headers with no special include directory.
ac_x_includes=],
[for ac_dir in $ac_x_header_dirs; do
if test -r "$ac_dir/X11/Xlib.h"; then
ac_x_includes=$ac_dir
break
fi
done])
fi # $ac_x_includes = no
if test "$ac_x_libraries" = no; then
# Check for the libraries.
# See if we find them without any special options.
# Don't add to $LIBS permanently.
ac_save_LIBS=$LIBS
LIBS="-lX11 $LIBS"
AC_LINK_IFELSE([AC_LANG_PROGRAM([@%:@include <X11/Xlib.h>],
[XrmInitialize ()])],
[LIBS=$ac_save_LIBS
# We can link X programs with no special library path.
ac_x_libraries=],
[LIBS=$ac_save_LIBS
for ac_dir in `echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g`
do
# Don't even attempt the hair of trying to link an X program!
for ac_extension in a so sl; do
if test -r "$ac_dir/libX11.$ac_extension"; then
ac_x_libraries=$ac_dir
break 2
fi
done
done])
fi # $ac_x_libraries = no
])# _AC_PATH_X_DIRECT
# _AC_PATH_X
# ----------
# Compute ac_cv_have_x.
AC_DEFUN([_AC_PATH_X],
[AC_CACHE_VAL(ac_cv_have_x,
[# One or both of the vars are not set, and there is no cached value.
ac_x_includes=no ac_x_libraries=no
_AC_PATH_X_XMKMF
_AC_PATH_X_DIRECT
case $ac_x_includes,$ac_x_libraries in #(
no,* | *,no | *\'*)
# Didn't find X, or a directory has "'" in its name.
ac_cv_have_x="have_x=no";; #(
*)
# Record where we found X for the cache.
ac_cv_have_x="have_x=yes\
ac_x_includes='$ac_x_includes'\
ac_x_libraries='$ac_x_libraries'"
esac])dnl
])
# AC_PATH_X
# ---------
# If we find X, set shell vars x_includes and x_libraries to the
# paths, otherwise set no_x=yes.
# Uses ac_ vars as temps to allow command line to override cache and checks.
# --without-x overrides everything else, but does not touch the cache.
AN_HEADER([X11/Xlib.h], [AC_PATH_X])
AC_DEFUN([AC_PATH_X],
[dnl Document the X abnormal options inherited from history.
m4_divert_once([HELP_BEGIN], [
X features:
--x-includes=DIR X include files are in DIR
--x-libraries=DIR X library files are in DIR])dnl
AC_MSG_CHECKING([for X])
AC_ARG_WITH(x, [ --with-x use the X Window System])
# $have_x is `yes', `no', `disabled', or empty when we do not yet know.
if test "x$with_x" = xno; then
# The user explicitly disabled X.
have_x=disabled
else
case $x_includes,$x_libraries in #(
*\'*) AC_MSG_ERROR([Cannot use X directory names containing ']);; #(
*,NONE | NONE,*) _AC_PATH_X;; #(
*) have_x=yes;;
esac
eval "$ac_cv_have_x"
fi # $with_x != no
if test "$have_x" != yes; then
AC_MSG_RESULT([$have_x])
no_x=yes
else
# If each of the values was on the command line, it overrides each guess.
test "x$x_includes" = xNONE && x_includes=$ac_x_includes
test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries
# Update the cache value to reflect the command line values.
ac_cv_have_x="have_x=yes\
ac_x_includes='$x_includes'\
ac_x_libraries='$x_libraries'"
AC_MSG_RESULT([libraries $x_libraries, headers $x_includes])
fi
])# AC_PATH_X
# AC_PATH_XTRA
# ------------
# Find additional X libraries, magic flags, etc.
AC_DEFUN([AC_PATH_XTRA],
[AC_REQUIRE([AC_PATH_X])dnl
if test "$no_x" = yes; then
# Not all programs may use this symbol, but it does not hurt to define it.
AC_DEFINE([X_DISPLAY_MISSING], 1,
[Define to 1 if the X Window System is missing or not being used.])
X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS=
else
if test -n "$x_includes"; then
X_CFLAGS="$X_CFLAGS -I$x_includes"
fi
# It would also be nice to do this for all -L options, not just this one.
if test -n "$x_libraries"; then
X_LIBS="$X_LIBS -L$x_libraries"
# For Solaris; some versions of Sun CC require a space after -R and
# others require no space. Words are not sufficient . . . .
AC_MSG_CHECKING([whether -R must be followed by a space])
ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries"
ac_xsave_[]_AC_LANG_ABBREV[]_werror_flag=$ac_[]_AC_LANG_ABBREV[]_werror_flag
ac_[]_AC_LANG_ABBREV[]_werror_flag=yes
AC_LINK_IFELSE([AC_LANG_PROGRAM()],
[AC_MSG_RESULT([no])
X_LIBS="$X_LIBS -R$x_libraries"],
[LIBS="$ac_xsave_LIBS -R $x_libraries"
AC_LINK_IFELSE([AC_LANG_PROGRAM()],
[AC_MSG_RESULT([yes])
X_LIBS="$X_LIBS -R $x_libraries"],
[AC_MSG_RESULT([neither works])])])
ac_[]_AC_LANG_ABBREV[]_werror_flag=$ac_xsave_[]_AC_LANG_ABBREV[]_werror_flag
LIBS=$ac_xsave_LIBS
fi
# Check for system-dependent libraries X programs must link with.
# Do this before checking for the system-independent R6 libraries
# (-lICE), since we may need -lsocket or whatever for X linking.
if test "$ISC" = yes; then
X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet"
else
# Martyn Johnson says this is needed for Ultrix, if the X
# libraries were built with DECnet support. And Karl Berry says
# the Alpha needs dnet_stub (dnet does not exist).
ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11"
AC_LINK_IFELSE([AC_LANG_CALL([], [XOpenDisplay])],
[],
[AC_CHECK_LIB(dnet, dnet_ntoa, [X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet"])
if test $ac_cv_lib_dnet_dnet_ntoa = no; then
AC_CHECK_LIB(dnet_stub, dnet_ntoa,
[X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub"])
fi])
LIBS="$ac_xsave_LIBS"
# msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT,
# to get the SysV transport functions.
# Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4)
# needs -lnsl.
# The nsl library prevents programs from opening the X display
# on Irix 5.2, according to T.E. Dickey.
# The functions gethostbyname, getservbyname, and inet_addr are
# in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking.
AC_CHECK_FUNC(gethostbyname)
if test $ac_cv_func_gethostbyname = no; then
AC_CHECK_LIB(nsl, gethostbyname, X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl")
if test $ac_cv_lib_nsl_gethostbyname = no; then
AC_CHECK_LIB(bsd, gethostbyname, X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd")
fi
fi
# lieder@skyler.mavd.honeywell.com says without -lsocket,
# socket/setsockopt and other routines are undefined under SCO ODT
# 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary
# on later versions), says Simon Leinen: it contains gethostby*
# variants that don't use the name server (or something). -lsocket
# must be given before -lnsl if both are needed. We assume that
# if connect needs -lnsl, so does gethostbyname.
AC_CHECK_FUNC(connect)
if test $ac_cv_func_connect = no; then
AC_CHECK_LIB(socket, connect, X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS", ,
$X_EXTRA_LIBS)
fi
# Guillermo Gomez says -lposix is necessary on A/UX.
AC_CHECK_FUNC(remove)
if test $ac_cv_func_remove = no; then
AC_CHECK_LIB(posix, remove, X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix")
fi
# BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay.
AC_CHECK_FUNC(shmat)
if test $ac_cv_func_shmat = no; then
AC_CHECK_LIB(ipc, shmat, X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc")
fi
fi
# Check for libraries that X11R6 Xt/Xaw programs need.
ac_save_LDFLAGS=$LDFLAGS
test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries"
# SM needs ICE to (dynamically) link under SunOS 4.x (so we have to
# check for ICE first), but we must link in the order -lSM -lICE or
# we get undefined symbols. So assume we have SM if we have ICE.
# These have to be linked with before -lX11, unlike the other
# libraries we check for below, so use a different variable.
# John Interrante, Karl Berry
AC_CHECK_LIB(ICE, IceConnectionNumber,
[X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE"], , $X_EXTRA_LIBS)
LDFLAGS=$ac_save_LDFLAGS
fi
AC_SUBST(X_CFLAGS)dnl
AC_SUBST(X_PRE_LIBS)dnl
AC_SUBST(X_LIBS)dnl
AC_SUBST(X_EXTRA_LIBS)dnl
])# AC_PATH_XTRA

File diff suppressed because it is too large Load diff

View file

@ -16,27 +16,41 @@
ACLOCAL=aclocal
AUTOCONF=autoconf
BAKEFILE_GEN=bakefile_gen
AUTOHACKS_PREPEND_INCLUDE_DIR=build/autoconf_prepend-include
# configure depends on everything else so this will build everything.
.PHONY: all
all: configure
.PHONY: autoconf_m4f
# Invoke make on wxAutohacks dir, but don't fail if it's not present
autoconf_m4f:
-make -C $(AUTOHACKS_PREPEND_INCLUDE_DIR)
BAKEFILES=\
build/bakefiles/wx.bkl \
build/bakefiles/build_cfg.bkl \
build/bakefiles/common.bkl \
build/bakefiles/common_samples.bkl \
build/bakefiles/common_samples_intree.bkl \
build/bakefiles/common_samples_outoftree.bkl \
build/bakefiles/config.bkl \
build/bakefiles/expat.bkl \
build/bakefiles/files.bkl \
build/bakefiles/jpeg.bkl \
build/bakefiles/lexilla.bkl \
build/bakefiles/mac_bundles.bkl \
build/bakefiles/monolithic.bkl \
build/bakefiles/multilib.bkl \
build/bakefiles/opengl.bkl \
build/bakefiles/plugins.bkl \
build/bakefiles/build_cfg.bkl
build/bakefiles/plugins_deps.bkl \
build/bakefiles/png.bkl \
build/bakefiles/regex.bkl \
build/bakefiles/scintilla.bkl \
build/bakefiles/tiff.bkl \
build/bakefiles/version.bkl \
build/bakefiles/wx.bkl \
build/bakefiles/wxpresets/libsample/libsample.bkl \
build/bakefiles/wxpresets/presets/wx.bkl \
build/bakefiles/wxpresets/presets/wx_unix.bkl \
build/bakefiles/wxpresets/presets/wx_win32.bkl \
build/bakefiles/wxpresets/presets/wx_xrc.bkl \
build/bakefiles/zlib.bkl \
tests/test.bkl
# Run bakefile-gen (which generates everything) whenever a bakefile is newer
# than Makefile.in or autoconf_inc.m4.
@ -45,10 +59,9 @@ autoconf_inc.m4 Makefile.in: $(BAKEFILES)
cd build/bakefiles && \
$(BAKEFILE_GEN) -f autoconf
# Run configure whenever configure.in, aclocal.m4 or autoconf_inc.m4 is updated
# Depend on our custom autoconf.m4f
configure: configure.in aclocal.m4 autoconf_inc.m4 autoconf_m4f
$(AUTOCONF) -B $(AUTOHACKS_PREPEND_INCLUDE_DIR)
# Run configure whenever configure.ac, aclocal.m4 or autoconf_inc.m4 is updated
configure: configure.ac aclocal.m4 autoconf_inc.m4
$(AUTOCONF)
ACLOCAL_SOURCES = \
build/aclocal/ac_raf_func_which_getservbyname_r.m4 \
@ -56,15 +69,11 @@ ACLOCAL_SOURCES = \
build/aclocal/ax_func_which_gethostbyname_r.m4 \
build/aclocal/bakefile-lang.m4 \
build/aclocal/bakefile.m4 \
build/aclocal/cppunit.m4 \
build/aclocal/gst-element-check.m4 \
build/aclocal/gtk-2.0.m4 \
build/aclocal/gtk.m4 \
build/aclocal/pkg.m4 \
build/aclocal/sdl.m4 \
build/aclocal/visibility.m4
# Run aclocal whenever acinclude or one of our local m4s is updated.
aclocal.m4: configure.in acinclude.m4 $(ACLOCAL_SOURCES)
aclocal.m4: configure.ac acinclude.m4 $(ACLOCAL_SOURCES)
$(ACLOCAL) -I build/aclocal

View file

@ -6,7 +6,7 @@
The formats below are disabled because wxWidgets doesn't support these
compilers any longer (although bakefile still does).
-->
<disable-formats>dmars,dmars_smake,msvc6prj,watcom</disable-formats>
<disable-formats>borland,dmars,dmars_smake,msvc6prj,msvs2003prj,msvs2005prj,msvs2008prj,watcom</disable-formats>
<!-- These wildcards match all .bkl files in wxWidgets tree: -->
@ -46,13 +46,8 @@
msvc6prj,msvs2003prj,msvs2005prj,msvs2008prj
</del-formats>
<!-- HtmlCtrl sample is Cocoa only (autoconf format) -->
<del-formats files="../../samples/html/htmlctrl/htmlctrl.bkl">
borland,dmars_smake,dmars,mingw,msvc,msvc6prj,msvs2003prj,msvs2005prj,msvs2008prj,watcom
</del-formats>
<!-- Some samples use MSVC-specific stuff -->
<del-formats files="../../samples/flash/flash.bkl,../../samples/mfc/mfc.bkl">
<del-formats files="../../samples/mfc/mfc.bkl">
autoconf,borland,dmars_smake,dmars,mingw,watcom
</del-formats>
@ -239,7 +234,7 @@
<add-formats files="../../samples/*/*.bkl,../../samples/*/*/*.bkl">
gnu
</add-formats>
<del-formats files="../../samples/flash/flash.bkl,../../samples/mfc/mfc.bkl,../../samples/webview_chromium/webview_chromium.bkl">
<del-formats files="../../samples/mfc/mfc.bkl,../../samples/webview_chromium/webview_chromium.bkl">
gnu
</del-formats>
<add-flags files="../../samples/*/*.bkl,../../samples/*/*/*.bkl"

View file

@ -24,7 +24,7 @@
@echo BUILD=$(BUILD) >>$(BUILD_CFG_FILE)
@echo MONOLITHIC=$(MONOLITHIC) >>$(BUILD_CFG_FILE)
@echo SHARED=$(SHARED) >>$(BUILD_CFG_FILE)
@echo UNICODE=$(UNICODE) >>$(BUILD_CFG_FILE)
@echo UNICODE=1 >>$(BUILD_CFG_FILE)
@echo TOOLKIT=$(TOOLKIT) >>$(BUILD_CFG_FILE)
@echo TOOLKIT_VERSION=$(TOOLKIT_VERSION) >>$(BUILD_CFG_FILE)
@echo WXUNIV=$(WXUNIV) >>$(BUILD_CFG_FILE)
@ -49,6 +49,7 @@
@echo USE_STC=$(USE_STC) >>$(BUILD_CFG_FILE)
@echo USE_WEBVIEW=$(USE_WEBVIEW) >>$(BUILD_CFG_FILE)
@echo USE_WEBVIEW_CHROMIUM=$(USE_WEBVIEW_CHROMIUM) >>$(BUILD_CFG_FILE)
@echo USE_XML=$(USE_XML) >>$(BUILD_CFG_FILE)
@echo USE_XRC=$(USE_XRC) >>$(BUILD_CFG_FILE)
@echo COMPILER=$(COMPILER) >>$(BUILD_CFG_FILE)
@echo COMPILER_VERSION=$(COMPILER_VERSION) >>$(BUILD_CFG_FILE)

View file

@ -37,10 +37,14 @@
<if cond="FORMAT=='msvs2008prj' and MSVS_PLATFORM=='win64'">_x64</if>
<if cond="TARGET_CPU=='amd64'">_x64</if>
<if cond="TARGET_CPU=='AMD64'">_x64</if>
<if cond="TARGET_CPU=='arm64'">_arm64</if>
<if cond="TARGET_CPU=='ARM64'">_arm64</if>
<if cond="TARGET_CPU=='ia64'">_ia64</if>
<if cond="TARGET_CPU=='IA64'">_ia64</if>
<if cond="TARGET_CPU=='x64'">_x64</if>
<if cond="TARGET_CPU=='X64'">_x64</if>
<if cond="FORMAT=='msvc' and TARGET_CPU=='' and VISUALSTUDIOPLATFORM=='x64'">_x64</if>
<if cond="FORMAT=='msvc' and TARGET_CPU=='' and VISUALSTUDIOPLATFORM=='X64'">_x64</if>
</set>
<!-- ================================================================== -->
@ -73,7 +77,7 @@
-->
<set var="WXCOMPILER">
<if cond="PLATFORM_WIN32=='1' and OFFICIAL_BUILD=='1'">_$(COMPILERORGCC)$(COMPILER_VERSION)$(ARCH_SUFFIX)</if>
<if cond="PLATFORM_WIN32=='1' and OFFICIAL_BUILD=='0'">_$(COMPILERORGCC)</if>
<if cond="PLATFORM_WIN32=='1' and OFFICIAL_BUILD=='0'">_$(COMPILERORGCC)$(ARCH_SUFFIX)</if>
</set>
<set var="VENDORTAG">
@ -86,11 +90,8 @@
<if cond="BUILD=='debug' and DEBUG_RUNTIME_LIBS=='default'">d</if>
<if cond="DEBUG_RUNTIME_LIBS=='1'">d</if>
</set>
<set var="WXUNICODEFLAG">
<if cond="UNICODE=='1'">u</if>
</set>
<set var="WX_U_D_SUFFIX">
$(WXUNICODEFLAG)$(WXDEBUGFLAG)
u$(WXDEBUGFLAG)
</set>
<set var="WXNAMESUFFIX">
$(WX_U_D_SUFFIX)$(WX_LIB_FLAVOUR)
@ -178,7 +179,7 @@
<if cond="MONOLITHIC=='0'">$(mk.evalExpr(wxwin.mkLibName('richtext')))</if>
</set>
<set var="WXLIB_STC">
<if cond="MONOLITHIC=='0'">$(mk.evalExpr(wxwin.mkLibName('stc')))</if>
<if cond="MONOLITHIC=='0' and USE_STC=='1'">$(mk.evalExpr(wxwin.mkLibName('stc')))</if>
</set>
<set var="WXLIB_WEBVIEW">
@ -210,7 +211,7 @@
<set var="COMPILER_PREFIX" make_var="1">$(COMPILER)</set>
<set var="OBJS" make_var="1">
$(COMPILER_PREFIX)$(COMPILER_VERSION)_$(CFG_NAME_PART)$(ARCH_SUFFIX)
$(COMPILER_PREFIX)$(COMPILER_VERSION)$(ARCH_SUFFIX)_$(CFG_NAME_PART)
</set>
<set var="BUILDDIR">$(OBJS)</set>
@ -294,16 +295,16 @@
<if cond="FORMAT=='msvc' and BUILD=='debug' and DEBUG_RUNTIME_LIBS=='0'">__NO_VC_CRTDBG__</if>
<if cond="FORMAT=='msvc' and BUILD=='release' and DEBUG_FLAG=='1'">__NO_VC_CRTDBG__</if>
</set>
<set var="UNICODE_DEFINE">
<if cond="FORMAT!='autoconf' and UNICODE=='1'">_UNICODE</if>
<if cond="FORMAT!='autoconf' and UNICODE=='0'">wxUSE_UNICODE=0</if>
</set>
<!-- fill for the specific case of the format/compiler -->
<set var="WIN32_WINNT">
<if cond="FORMAT=='dmars' or FORMAT=='dmars_smake'">_WIN32_WINNT=0x0400</if>
</set>
<set var="WIN32_DPI_MANIFEST">
<if cond="PLATFORM_WIN32=='1' and IS_MSVC=='0'">wxUSE_DPI_AWARE_MANIFEST=$(USE_DPI_AWARE_MANIFEST)</if>
</set>
<set var="CAIRO_LIB">
<if cond="USE_CAIRO=='1'">cairo</if>
</set>
@ -317,12 +318,49 @@
<set var="LINK_TARGET_CPU">
<if cond="TARGET_CPU=='amd64'">/MACHINE:X64</if>
<if cond="TARGET_CPU=='AMD64'">/MACHINE:X64</if>
<if cond="TARGET_CPU=='arm64'">/MACHINE:ARM64</if>
<if cond="TARGET_CPU=='ARM64'">/MACHINE:ARM64</if>
<if cond="TARGET_CPU=='ia64'">/MACHINE:IA64</if>
<if cond="TARGET_CPU=='IA64'">/MACHINE:IA64</if>
<if cond="TARGET_CPU=='x64'">/MACHINE:X64</if>
<if cond="TARGET_CPU=='X64'">/MACHINE:X64</if>
<if cond="FORMAT=='msvc' and TARGET_CPU=='' and VISUALSTUDIOPLATFORM=='x64'">/MACHINE:X64</if>
<if cond="FORMAT=='msvc' and TARGET_CPU=='' and VISUALSTUDIOPLATFORM=='X64'">/MACHINE:X64</if>
</set>
<set var="WIN32_DPI_LINKFLAG"></set>
<if cond="IS_MSVC_PRJ">
<set var="WIN32_DPI_LINKFLAG">
<!-- system dpi -->
<if cond="USE_DPI_AWARE_MANIFEST=='1'">/MANIFEST:EMBED /MANIFESTINPUT:$(TOP_SRCDIR)include/wx/msw/wx_dpi_aware.manifest</if>
<!-- per-monitor dpi -->
<if cond="USE_DPI_AWARE_MANIFEST=='2'">/MANIFEST:EMBED /MANIFESTINPUT:$(TOP_SRCDIR)include/wx/msw/wx_dpi_aware_pmv2.manifest</if>
</set>
</if>
<if cond="FORMAT=='msvc'">
<set var="WIN32_DPI_LINKFLAG">
<!-- system dpi -->
<if cond="USE_DPI_AWARE_MANIFEST=='1' and VISUALSTUDIOVERSION=='14.0'">/MANIFEST:EMBED /MANIFESTINPUT:$(TOP_SRCDIR)include/wx/msw/wx_dpi_aware.manifest</if>
<if cond="USE_DPI_AWARE_MANIFEST=='1' and VISUALSTUDIOVERSION=='15.0'">/MANIFEST:EMBED /MANIFESTINPUT:$(TOP_SRCDIR)include/wx/msw/wx_dpi_aware.manifest</if>
<if cond="USE_DPI_AWARE_MANIFEST=='1' and VISUALSTUDIOVERSION=='16.0'">/MANIFEST:EMBED /MANIFESTINPUT:$(TOP_SRCDIR)include/wx/msw/wx_dpi_aware.manifest</if>
<if cond="USE_DPI_AWARE_MANIFEST=='1' and VISUALSTUDIOVERSION=='17.0'">/MANIFEST:EMBED /MANIFESTINPUT:$(TOP_SRCDIR)include/wx/msw/wx_dpi_aware.manifest</if>
<!-- per-monitor dpi -->
<if cond="USE_DPI_AWARE_MANIFEST=='2' and VISUALSTUDIOVERSION=='14.0'">/MANIFEST:EMBED /MANIFESTINPUT:$(TOP_SRCDIR)include/wx/msw/wx_dpi_aware_pmv2.manifest</if>
<if cond="USE_DPI_AWARE_MANIFEST=='2' and VISUALSTUDIOVERSION=='15.0'">/MANIFEST:EMBED /MANIFESTINPUT:$(TOP_SRCDIR)include/wx/msw/wx_dpi_aware_pmv2.manifest</if>
<if cond="USE_DPI_AWARE_MANIFEST=='2' and VISUALSTUDIOVERSION=='16.0'">/MANIFEST:EMBED /MANIFESTINPUT:$(TOP_SRCDIR)include/wx/msw/wx_dpi_aware_pmv2.manifest</if>
<if cond="USE_DPI_AWARE_MANIFEST=='2' and VISUALSTUDIOVERSION=='17.0'">/MANIFEST:EMBED /MANIFESTINPUT:$(TOP_SRCDIR)include/wx/msw/wx_dpi_aware_pmv2.manifest</if>
</set>
</if>
<set var="TARGET_CPU_COMPFLAG"></set>
<if cond="FORMAT=='msvc'">
<set var="TARGET_CPU_COMPFLAG">
<if cond="TARGET_CPU==''">TARGET_CPU_COMPFLAG=0</if>
<if cond="TARGET_CPU=='' and VISUALSTUDIOPLATFORM=='x64'"></if>
<if cond="TARGET_CPU=='' and VISUALSTUDIOPLATFORM=='X64'"></if>
</set>
</if>
<template id="common_settings">
<debug-info>$(DEBUGINFO)</debug-info>
<debug-runtime-libs>$(DEBUGRUNTIME)</debug-runtime-libs>
@ -342,11 +380,27 @@
</if>
<define>$(NO_VC_CRTDBG)</define>
<define>$(WIN32_WINNT)</define>
<cppflags cond="FORMAT=='autoconf'">$(WX_CPPFLAGS)</cppflags>
<cflags cond="FORMAT=='autoconf'">$(WX_CFLAGS)</cflags>
<cxxflags cond="FORMAT=='autoconf'">$(WX_CXXFLAGS)</cxxflags>
<!--
Surprisingly, WX_LDFLAGS doesn't go into ldflags, but into ldlibs,
because we need it to come after <lib-path> contents, which is
appended to ldflags, because we want to link with wx libraries in
the LIBDIRNAME and not any wx libraries installed system-wide.
-->
<ldlibs cond="FORMAT=='autoconf'">$(WX_LDFLAGS)</ldlibs>
<if cond="FORMAT=='msvc'">
<ldflags>$(LINK_TARGET_CPU)</ldflags>
<define>$(TARGET_CPU_COMPFLAG)</define>
</if>
</template>
<template id="wx_dpi">
<res-define>$(WIN32_DPI_MANIFEST)</res-define>
<ldflags>$(WIN32_DPI_LINKFLAG)</ldflags>
</template>
<template id="anylib">
<dirname>$(LIBDIRNAME)</dirname>
<install-to>$(LIBDIR)</install-to>
@ -478,6 +532,7 @@ $(TAB)cl /EP /nologo "$(DOLLAR)(InputPath)" > "$(SETUPHDIR)\wx\msw\rcdefs.h"
<include file="tiff.bkl"/>
<include file="expat.bkl"/>
<include file="scintilla.bkl"/>
<include file="lexilla.bkl"/>
<!-- =============================================================== -->
@ -511,14 +566,12 @@ $(TAB)cl /EP /nologo "$(DOLLAR)(InputPath)" > "$(SETUPHDIR)\wx\msw\rcdefs.h"
<define>$(EXCEPTIONS_DEFINE)</define>
<define>$(RTTI_DEFINE)</define>
<define>$(THREAD_DEFINE)</define>
<define>$(UNICODE_DEFINE)</define>
<include cond="FORMAT!='autoconf'">$(SETUPHDIR)</include>
<include cond="FORMAT!='autoconf'">$(TOP_SRCDIR)include</include>
<include cond="FORMAT!='autoconf'">$(CAIRO_INCLUDEDIR)</include>
<lib-path>$(LIBDIRNAME)</lib-path>
<warnings>max</warnings>
<cxxflags cond="FORMAT=='autoconf'">$(CXXWARNINGS)</cxxflags>
<cppflags-watcom>
-wcd=549 <!-- 'sizeof' operand contains compiler generated information -->
-wcd=656 <!-- define this function inside its class definition (may improve code quality) -->
@ -564,7 +617,7 @@ $(TAB)cl /EP /nologo "$(DOLLAR)(InputPath)" > "$(SETUPHDIR)\wx\msw\rcdefs.h"
<sys-lib>rpcrt4</sys-lib>
<sys-lib>advapi32</sys-lib>
<sys-lib>version</sys-lib>
<sys-lib>wsock32</sys-lib>
<sys-lib>ws2_32</sys-lib>
<!-- this one is only used if wxUSE_URL_NATIVE==1 but we don't
know if it is here so just add it unconditionally -->
<sys-lib>wininet</sys-lib>
@ -600,6 +653,9 @@ $(TAB)cl /EP /nologo "$(DOLLAR)(InputPath)" > "$(SETUPHDIR)\wx\msw\rcdefs.h"
<set var="LIB_SCINTILLA_IF_MONO">
<if cond="MONOLITHIC=='1' and USE_STC=='1'">$(LIB_SCINTILLA)</if>
</set>
<set var="LIB_LEXILLA_IF_MONO">
<if cond="MONOLITHIC=='1' and USE_STC=='1'">$(LIB_LEXILLA)</if>
</set>
<template id="wx_append_base" template_append="wx_append_base_nomono">
<!-- Always link against the full wx library in monolithic build and
also against the PNG one as core code references it for Tango
@ -611,6 +667,7 @@ $(TAB)cl /EP /nologo "$(DOLLAR)(InputPath)" > "$(SETUPHDIR)\wx\msw\rcdefs.h"
<!-- Always link against the wxWin library in monolithic build: -->
<sys-lib>$(WXLIB_MONO)</sys-lib>
<sys-lib>$(LIB_SCINTILLA_IF_MONO)</sys-lib>
<sys-lib>$(LIB_LEXILLA_IF_MONO)</sys-lib>
</template>
@ -667,6 +724,9 @@ $(TAB)cl /EP /nologo "$(DOLLAR)(InputPath)" > "$(SETUPHDIR)\wx\msw\rcdefs.h"
<template id="wx_dll_b" template="wx_lib_b">
<set var="WXDLLNAME">$(wxwin.mkDllName(wxid))</set>
<if cond="FORMAT=='autoconf'">
<set var="__dllinstdir">$(DLLDIR)</set>
</if>
<dllname>$(WXDLLNAME)</dllname>
<version>$(WX_VERSION)</version>
<so_version>$(WXSOVERSION)</so_version>
@ -688,50 +748,87 @@ $(TAB)cl /EP /nologo "$(DOLLAR)(InputPath)" > "$(SETUPHDIR)\wx\msw\rcdefs.h"
<win32-res>$(WXTOPDIR)src/msw/version.rc</win32-res>
</template>
<template id="wx_3rdparty_dependencies_gui" cond="USE_GUI=='1'">
<depends>wxtiff</depends>
<depends>wxjpeg</depends>
<depends>wxpng</depends>
<depends>wxscintilla</depends>
</template>
<template id="wx_3rdparty_dependencies"
template="wx_3rdparty_dependencies_gui">
<template id="wx_3rdparty_dependencies_base">
<depends>wxexpat</depends>
<depends>wxzlib</depends>
<depends>wxregex</depends>
</template>
<template id="wx_3rdparty_includes_gui" cond="USE_GUI=='1'">
<template id="wx_3rdparty_dependencies_gui" cond="USE_GUI=='1'"
template="wx_3rdparty_dependencies_base">
<depends>wxtiff</depends>
<depends>wxjpeg</depends>
<depends>wxpng</depends>
<depends>wxscintilla</depends>
<depends>wxlexilla</depends>
</template>
<template id="wx_3rdparty_includes_base">
<include>$(INC_ZLIB)</include>
<include>$(INC_REGEX)</include>
<include>$(INC_EXPAT)</include>
</template>
<template id="wx_3rdparty_includes_gui" cond="USE_GUI=='1'"
template_append="wx_3rdparty_includes_base">
<include>$(INC_TIFF_BUILD)</include>
<include>$(INC_TIFF)</include>
<include>$(INC_JPEG)</include>
<include>$(INC_PNG)</include>
</template>
<template id="wx_3rdparty_includes"
template="wx_3rdparty_includes_gui">
<include>$(INC_ZLIB)</include>
<include>$(INC_REGEX)</include>
<include>$(INC_EXPAT)</include>
</template>
<template id="wx_lib"
template="wx_lib_b,wx_3rdparty_includes,msvc_setup_h"/>
template="wx_3rdparty_includes_gui,wx_lib_b,msvc_setup_h"/>
<template id="wx_base_lib"
template="wx_lib_b,wx_3rdparty_includes,msvc_setup_h">
template="wx_3rdparty_includes_base,wx_lib_b,msvc_setup_h">
<define>wxUSE_GUI=0</define>
</template>
<template id="wx_dll"
template="wx_dll_b,wx_3rdparty_dependencies,wx_3rdparty_includes"
template="wx_3rdparty_includes_gui,wx_dll_b,wx_3rdparty_dependencies_gui"
template_append="msvc_setup_h,wx_append_nomono"/>
<template id="wx_base_dll"
template="wx_dll_b,wx_3rdparty_dependencies,wx_3rdparty_includes"
template="wx_3rdparty_includes_base,wx_dll_b,wx_3rdparty_dependencies_base"
template_append="msvc_setup_h,wx_append_base_nomono">
<define>wxUSE_GUI=0</define>
</template>
<!-- additional includes and defines for webview edge -->
<set var="webview_additional_include">
<if cond="TOOLKIT=='MSW'">$(TOP_SRCDIR)3rdparty/webview2/build/native/include</if>
</set>
<set var="webview_additional_include_wrl">
<if cond="TOOLKIT=='MSW' and IS_MSVC=='0'">$(TOP_SRCDIR)include/wx/msw/wrl</if>
</set>
<set var="webview_additional_libdirs_arch">
<if cond="TARGET_CPU=='amd64'">x64</if>
<if cond="TARGET_CPU=='AMD64'">x64</if>
<if cond="TARGET_CPU=='arm64'">arm64</if>
<if cond="TARGET_CPU=='ARM64'">arm64</if>
<if cond="TARGET_CPU=='x64'">x64</if>
<if cond="TARGET_CPU=='X64'">x64</if>
<if cond="TARGET_CPU=='x86'">x86</if>
<if cond="TARGET_CPU=='X86'">x86</if>
<if cond="TARGET_CPU==''">x86</if>
</set>
<set var="webview_additional_libdirs">
<if cond="IS_MSVC=='1' and TOOLKIT=='MSW'">$(TOP_SRCDIR)3rdparty/webview2/build/native/$(webview_additional_libdirs_arch)</if>
</set>
<set var="webview_edge_pragma_warning">
<if cond="TOOLKIT=='MSW' and IS_MSVC=='0'">-Wno-unknown-pragmas</if>
</set>
<template id="webview_additional">
<include>$(webview_additional_include_wrl)</include>
<include>$(webview_additional_include)</include>
<lib-path>$(webview_additional_libdirs)</lib-path>
<cxxflags>$(webview_edge_pragma_warning)</cxxflags>
</template>
<!-- =============================================================== -->
<!-- Templates for building wxWidgets plugins: -->
<!-- =============================================================== -->
@ -759,7 +856,7 @@ $(TAB)cl /EP /nologo "$(DOLLAR)(InputPath)" > "$(SETUPHDIR)\wx\msw\rcdefs.h"
</set>
<define-rule name="wx-base-plugin" extends="module">
<template>
<template template="common_settings">
<dllname>
$(id)$(WX_U_D_SUFFIX)$(PLUGIN_VERSION)$(WXCOMPILER)
</dllname>
@ -800,9 +897,4 @@ $(TAB)cl /EP /nologo "$(DOLLAR)(InputPath)" > "$(SETUPHDIR)\wx\msw\rcdefs.h"
<set var="VARS_DONT_ELIMINATE" append="1">top_srcdir</set>
<set var="webviewdll_ext_dir_define">
<if cond="FORMAT=='autoconf' and USE_WEBVIEW_WEBKIT2=='1'">WX_WEB_EXTENSIONS_DIRECTORY=\"$(PLUGINS_INST_DIR)/web-extensions\"</if>
</set>
</makefile>

View file

@ -19,7 +19,7 @@
<define>$(DLLFLAG)</define>
</template>
<template id="wx_util" template="wx_util_b">
<template id="wx_util" template="wx_util_b,wx_dpi">
<app-type>gui</app-type>
<!-- resource files includes: -->
<include>$(SRCDIR)/$(WXTOPDIR)samples</include>

View file

@ -37,9 +37,11 @@
</define-rule>
<!-- empty stubs for things that don't make sense for makefile.unx: -->
<!-- Define templates used by the samples -->
<template id="wx_append"/>
<template id="wx_append_base"/>
<template id="wx_append_base">
<cxxflags>-DwxUSE_GUI=0</cxxflags>
</template>
<define-rule name="wx-data" pseudo="1">
<define-tag name="files"/>

View file

@ -92,23 +92,6 @@
</option>
</if>
<!-- don't include ANSI configuration in project files, it's going to be
eventually removed anyway and it only doubles the number of build
configs in projects: -->
<if cond="IS_MSVC_PRJ=='1'">
<set var="UNICODE">1</set>
</if>
<if cond="IS_MSVC_PRJ=='0'">
<option name="UNICODE">
<values>0,1</values>
<values-description>,Unicode</values-description>
<default-value>1</default-value>
<description>
Compile Unicode build of wxWidgets?
</description>
</option>
</if>
<option name="BUILD">
<values>debug,release</values>
<values-description>Debug,Release</values-description>
@ -128,10 +111,22 @@ your environment is set up appropriately with the correct compiler in the
PATH. Rather it affects some options passed to some of the common build
utilities such as the resource compiler and the linker.
Accepted values: IA64, X64
Accepted values: IA64, X64, ARM64
(AMD64 accepted as synonym for X64 but should not be used any more).
</description>
</option>
<option name="VISUALSTUDIOVERSION">
<default-value>$(DOLLAR)(VISUALSTUDIOVERSION)</default-value>
<description>
Visual Studio version set by the VS command prompt.
</description>
</option>
<option name="VISUALSTUDIOPLATFORM">
<default-value>$(DOLLAR)(PLATFORM)</default-value>
<description>
Platform architecture set by the VS command prompt.
</description>
</option>
</if>
<if cond="FORMAT!='msvc'">
<set var="TARGET_CPU"/>
@ -247,6 +242,14 @@ Default is to use debug CRT if and only if BUILD==debug.
</description>
</option>
<option name="USE_XML">
<values>0,1</values>
<default-value>1</default-value>
<description>
Build XML-related libraries?
</description>
</option>
<option name="USE_XRC">
<values>0,1</values>
<default-value>1</default-value>
@ -332,6 +335,14 @@ Default is to use debug CRT if and only if BUILD==debug.
</description>
</option>
<option name="USE_DPI_AWARE_MANIFEST">
<values>0,1,2</values>
<default-value>2</default-value>
<description>
Set DPI Awareness (win32) to none, system or per-monitor.
</description>
</option>
<option name="USE_THREADS">
<values>0,1</values>
<default-value>1</default-value>
@ -396,8 +407,12 @@ compiled .lib files and setup.h under the lib/ toplevel directory.
<option name="EXTRALIBS_GUI"/>
<option name="EXTRALIBS_OPENGL"/>
<option name="EXTRALIBS_SDL"/>
<option name="EXTRALIBS_STC"/>
<option name="EXTRALIBS_WEBVIEW"/>
<option name="CXXWARNINGS"/>
<option name="WX_CPPFLAGS"/>
<option name="WX_CFLAGS"/>
<option name="WX_CXXFLAGS"/>
<option name="WX_LDFLAGS"/>
<option name="HOST_SUFFIX"/>
<option name="DYLIB_RPATH_INSTALL"/>
<option name="DYLIB_RPATH_POSTLINK"/>
@ -405,7 +420,7 @@ compiled .lib files and setup.h under the lib/ toplevel directory.
<option name="SAMPLES_CXXFLAGS"/>
<option name="USE_WEBVIEW_WEBKIT2"/>
<!-- see configure.in; it's required by some samples on Mac OS X -->
<!-- see configure.ac; it's required by some samples on Mac OS X -->
<option name="HEADER_PAD_OPTION"/>
<set var="TOP_SRCDIR">$(top_srcdir)/</set>
@ -470,10 +485,15 @@ it if SHARED=1 unless you know what you are doing.
<set var="EXTRALIBS_GUI"/>
<set var="EXTRALIBS_OPENGL">
<if cond="COMPILER=='wat' and TOOLKIT=='MSW'">opengl32.lib glu32.lib</if>
<if cond="COMPILER in ['vc','evc']">opengl32.lib glu32.lib</if>
<if cond="COMPILER=='vc'">opengl32.lib glu32.lib</if>
<if cond="COMPILER=='gcc'">-lopengl32 -lglu32</if>
</set>
<set var="EXTRALIBS_SDL"/>
<set var="EXTRALIBS_STC">
<if cond="COMPILER=='wat' and TOOLKIT=='MSW'">imm32.lib</if>
<if cond="COMPILER=='vc' and TOOLKIT=='MSW'">imm32.lib</if>
<if cond="COMPILER=='gcc' and TOOLKIT=='MSW'">-limm32</if>
</set>
<set var="EXTRALIBS_WEBVIEW"/>
<set var="WITH_PLUGIN_SDL">0</set>
@ -485,26 +505,13 @@ it if SHARED=1 unless you know what you are doing.
</if>
<if cond="FORMAT=='mingw'">
<option name="GCC_VERSION">
<values>3,2.95</values>
<default-value>3</default-value>
<description>
Set the version of your Mingw installation here.
"3" ...... this is for Mingw 2.0 or newer (comes with gcc3)
"2.95" ... for Mingw 1.1 or any of the older versions
</description>
</option>
<option name="WINDRES">
<default-value>windres --use-temp-file</default-value>
<default-value>windres</default-value>
<description>
Windows resource compiler to use, possibly including extra options.
For example, add "-F pe-i386" here if using 64 bit windres for 32 bit build.
</description>
</option>
<set var="GCCFLAGS">
<if cond="GCC_VERSION=='2.95'">-fvtable-thunks</if>
</set>
<set var="EXTRACFLAGS">$(GCCFLAGS) -DHAVE_W32API_H</set>
</if>
@ -524,6 +531,7 @@ For example, add "-F pe-i386" here if using 64 bit windres for 32 bit build.
<set var="USE_WEBVIEW">1</set>
<set var="USE_WEBVIEW_CHROMIUM">0</set>
<set var="USE_MEDIA">1</set>
<set var="USE_XML">1</set>
<set var="USE_XRC">1</set>
<set var="USE_OPENGL">1</set>
<set var="USE_QA">1</set>
@ -531,6 +539,7 @@ For example, add "-F pe-i386" here if using 64 bit windres for 32 bit build.
<set var="USE_GUI">1</set>
<set var="USE_EXCEPTIONS">1</set>
<set var="USE_RTTI">1</set>
<set var="USE_DPI_AWARE_MANIFEST">0</set>
<set var="USE_THREADS">1</set>
<set var="USE_CAIRO">0</set>
<set var="DEBUG_INFO">$(DEBUG_INFO_DEFAULT)</set>
@ -545,7 +554,6 @@ For example, add "-F pe-i386" here if using 64 bit windres for 32 bit build.
<set var="BUILD">debug</set>
<set var="SHARED">0</set>
<set var="WXUNIV">0</set>
<set var="UNICODE">1</set>
<!-- Free version does not distribute OpenGL,
in commercial distribution better use dmars_smake format -->
<set var="USE_OPENGL">0</set>

View file

@ -4,6 +4,7 @@
<if cond="FORMAT=='autoconf'">
<option name="wxUSE_EXPAT"/>
<option name="wxCFLAGS_C99"/>
<set var="LIB_EXPAT">
<if cond="wxUSE_EXPAT=='builtin'">
wxexpat$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
@ -31,6 +32,7 @@
HAVE_EXPAT_CONFIG_H
</define>
<cflags-borland>-w-8004 -w-8008 -w-8012 -w-8057 -w-8066</cflags-borland>
<cflags cond="FORMAT=='autoconf'">$(wxCFLAGS_C99)</cflags>
<sources>
src/expat/expat/lib/xmlparse.c
src/expat/expat/lib/xmlrole.c

File diff suppressed because it is too large Load diff

180
build/bakefiles/lexilla.bkl Normal file
View file

@ -0,0 +1,180 @@
<?xml version="1.0" ?>
<makefile>
<if cond="FORMAT=='autoconf'">
<set var="LIB_LEXILLA">
<if cond="USE_STC=='1'">
wxlexilla$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
</if>
</set>
</if>
<if cond="FORMAT!='autoconf'">
<set var="LIB_LEXILLA">
<if cond="USE_STC=='1'">
wxlexilla$(WXDEBUGFLAG)$(HOST_SUFFIX)
</if>
</set>
</if>
<template id="wxlexilla_cppflags">
<include>$(TOP_SRCDIR)src/stc/lexilla/access</include>
<include>$(TOP_SRCDIR)src/stc/lexilla/include</include>
<include>$(TOP_SRCDIR)src/stc/lexilla/lexlib</include>
<include>$(TOP_SRCDIR)src/stc/lexilla/include</include>
<include>$(TOP_SRCDIR)src/stc/scintilla/include</include>
<include>$(TOP_SRCDIR)src/stc/scintilla/src</include>
</template>
<set var="wxlexilla_usingdll">
<if cond="SHARED=='1' and MONOLITHIC=='0'">WXUSINGDLL</if>
</set>
<lib id="wxlexilla" template="3rdparty_lib,wxlexilla_cppflags,msvc_setup_h"
cond="USE_STC=='1' and BUILDING_LIB=='1'">
<if cond="FORMAT!='autoconf'">
<include>$(SETUPHDIR)</include>
<include>$(TOP_SRCDIR)include</include>
</if>
<define>$(wxlexilla_usingdll)</define>
<define>__WX$(TOOLKIT)__</define>
<define>$(WXUNIV_DEFINE)</define>
<define>$(DEBUG_DEFINE)</define>
<dirname>$(LIBDIRNAME)</dirname>
<sources>
src/stc/lexilla/access/LexillaAccess.cxx
src/stc/lexilla/lexers/LexA68k.cxx
src/stc/lexilla/lexers/LexAPDL.cxx
src/stc/lexilla/lexers/LexASY.cxx
src/stc/lexilla/lexers/LexAU3.cxx
src/stc/lexilla/lexers/LexAVE.cxx
src/stc/lexilla/lexers/LexAVS.cxx
src/stc/lexilla/lexers/LexAbaqus.cxx
src/stc/lexilla/lexers/LexAda.cxx
src/stc/lexilla/lexers/LexAsm.cxx
src/stc/lexilla/lexers/LexAsn1.cxx
src/stc/lexilla/lexers/LexBaan.cxx
src/stc/lexilla/lexers/LexBash.cxx
src/stc/lexilla/lexers/LexBasic.cxx
src/stc/lexilla/lexers/LexBatch.cxx
src/stc/lexilla/lexers/LexBibTeX.cxx
src/stc/lexilla/lexers/LexBullant.cxx
src/stc/lexilla/lexers/LexCIL.cxx
src/stc/lexilla/lexers/LexCLW.cxx
src/stc/lexilla/lexers/LexCOBOL.cxx
src/stc/lexilla/lexers/LexCPP.cxx
src/stc/lexilla/lexers/LexCSS.cxx
src/stc/lexilla/lexers/LexCaml.cxx
src/stc/lexilla/lexers/LexCmake.cxx
src/stc/lexilla/lexers/LexCoffeeScript.cxx
src/stc/lexilla/lexers/LexConf.cxx
src/stc/lexilla/lexers/LexCrontab.cxx
src/stc/lexilla/lexers/LexCsound.cxx
src/stc/lexilla/lexers/LexD.cxx
src/stc/lexilla/lexers/LexDMAP.cxx
src/stc/lexilla/lexers/LexDMIS.cxx
src/stc/lexilla/lexers/LexDataflex.cxx
src/stc/lexilla/lexers/LexDiff.cxx
src/stc/lexilla/lexers/LexECL.cxx
src/stc/lexilla/lexers/LexEDIFACT.cxx
src/stc/lexilla/lexers/LexEScript.cxx
src/stc/lexilla/lexers/LexEiffel.cxx
src/stc/lexilla/lexers/LexErlang.cxx
src/stc/lexilla/lexers/LexErrorList.cxx
src/stc/lexilla/lexers/LexFSharp.cxx
src/stc/lexilla/lexers/LexFlagship.cxx
src/stc/lexilla/lexers/LexForth.cxx
src/stc/lexilla/lexers/LexFortran.cxx
src/stc/lexilla/lexers/LexGAP.cxx
src/stc/lexilla/lexers/LexGui4Cli.cxx
src/stc/lexilla/lexers/LexHTML.cxx
src/stc/lexilla/lexers/LexHaskell.cxx
src/stc/lexilla/lexers/LexHex.cxx
src/stc/lexilla/lexers/LexHollywood.cxx
src/stc/lexilla/lexers/LexIndent.cxx
src/stc/lexilla/lexers/LexInno.cxx
src/stc/lexilla/lexers/LexJSON.cxx
src/stc/lexilla/lexers/LexKVIrc.cxx
src/stc/lexilla/lexers/LexKix.cxx
src/stc/lexilla/lexers/LexLaTeX.cxx
src/stc/lexilla/lexers/LexLisp.cxx
src/stc/lexilla/lexers/LexLout.cxx
src/stc/lexilla/lexers/LexLua.cxx
src/stc/lexilla/lexers/LexMMIXAL.cxx
src/stc/lexilla/lexers/LexMPT.cxx
src/stc/lexilla/lexers/LexMSSQL.cxx
src/stc/lexilla/lexers/LexMagik.cxx
src/stc/lexilla/lexers/LexMake.cxx
src/stc/lexilla/lexers/LexMarkdown.cxx
src/stc/lexilla/lexers/LexMatlab.cxx
src/stc/lexilla/lexers/LexMaxima.cxx
src/stc/lexilla/lexers/LexMetapost.cxx
src/stc/lexilla/lexers/LexModula.cxx
src/stc/lexilla/lexers/LexMySQL.cxx
src/stc/lexilla/lexers/LexNim.cxx
src/stc/lexilla/lexers/LexNimrod.cxx
src/stc/lexilla/lexers/LexNsis.cxx
src/stc/lexilla/lexers/LexNull.cxx
src/stc/lexilla/lexers/LexOScript.cxx
src/stc/lexilla/lexers/LexOpal.cxx
src/stc/lexilla/lexers/LexPB.cxx
src/stc/lexilla/lexers/LexPLM.cxx
src/stc/lexilla/lexers/LexPO.cxx
src/stc/lexilla/lexers/LexPOV.cxx
src/stc/lexilla/lexers/LexPS.cxx
src/stc/lexilla/lexers/LexPascal.cxx
src/stc/lexilla/lexers/LexPerl.cxx
src/stc/lexilla/lexers/LexPowerPro.cxx
src/stc/lexilla/lexers/LexPowerShell.cxx
src/stc/lexilla/lexers/LexProgress.cxx
src/stc/lexilla/lexers/LexProps.cxx
src/stc/lexilla/lexers/LexPython.cxx
src/stc/lexilla/lexers/LexR.cxx
src/stc/lexilla/lexers/LexRaku.cxx
src/stc/lexilla/lexers/LexRebol.cxx
src/stc/lexilla/lexers/LexRegistry.cxx
src/stc/lexilla/lexers/LexRuby.cxx
src/stc/lexilla/lexers/LexRust.cxx
src/stc/lexilla/lexers/LexSAS.cxx
src/stc/lexilla/lexers/LexSML.cxx
src/stc/lexilla/lexers/LexSQL.cxx
src/stc/lexilla/lexers/LexSTTXT.cxx
src/stc/lexilla/lexers/LexScriptol.cxx
src/stc/lexilla/lexers/LexSmalltalk.cxx
src/stc/lexilla/lexers/LexSorcus.cxx
src/stc/lexilla/lexers/LexSpecman.cxx
src/stc/lexilla/lexers/LexSpice.cxx
src/stc/lexilla/lexers/LexStata.cxx
src/stc/lexilla/lexers/LexTACL.cxx
src/stc/lexilla/lexers/LexTADS3.cxx
src/stc/lexilla/lexers/LexTAL.cxx
src/stc/lexilla/lexers/LexTCL.cxx
src/stc/lexilla/lexers/LexTCMD.cxx
src/stc/lexilla/lexers/LexTeX.cxx
src/stc/lexilla/lexers/LexTxt2tags.cxx
src/stc/lexilla/lexers/LexVB.cxx
src/stc/lexilla/lexers/LexVHDL.cxx
src/stc/lexilla/lexers/LexVerilog.cxx
src/stc/lexilla/lexers/LexVisualProlog.cxx
src/stc/lexilla/lexers/LexX12.cxx
src/stc/lexilla/lexers/LexYAML.cxx
src/stc/lexilla/lexlib/Accessor.cxx
<!-- src/stc/lexilla/lexlib/CharacterCategory.cxx -->
<!-- src/stc/lexilla/lexlib/CharacterSet.cxx -->
src/stc/lexilla/lexlib/DefaultLexer.cxx
src/stc/lexilla/lexlib/LexerBase.cxx
src/stc/lexilla/lexlib/LexerModule.cxx
src/stc/lexilla/lexlib/LexerNoExceptions.cxx
src/stc/lexilla/lexlib/LexerSimple.cxx
src/stc/lexilla/lexlib/PropSetSimple.cxx
src/stc/lexilla/lexlib/StyleContext.cxx
src/stc/lexilla/lexlib/WordList.cxx
src/stc/lexilla/src/Lexilla.cxx
</sources>
</lib>
<!-- used to conditionally link against wxlexilla only if it's enabled -->
<set var="wxlexilla_library_link">
<if cond="USE_STC=='1' and BUILDING_LIB=='1'">wxlexilla</if>
</set>
</makefile>

View file

@ -5,15 +5,7 @@
<!--
Support for application bundles, for wxWidgets samples.
-->
<!--
Nasty hack: use $(srcdir) to obtain usable CFBundleIdentifier suffix;
converts $(srcdir) like "../../samples/minimal" to "samples.minimal".
-->
<set var="BUNDLE_IDENTIFIER">
`echo $(DOLLAR)(srcdir) | sed -e 's,\.\./,,g' | sed -e 's,/,.,g'`
</set>
<set var="BUNDLE_PLIST" overwrite="0">
$(TOP_SRCDIR)src/osx/carbon/Info.plist.in
</set>
@ -54,9 +46,14 @@
mkdir -p $(BUNDLE)/Resources
<!-- Info.plist: -->
sed -e "s/IDENTIFIER/$(BUNDLE_IDENTIFIER)/" \
-e "s/EXECUTABLE/$(id)/" \
-e "s/VERSION/$(WX_VERSION)/" \
sed -e "s/\$(DOLLAR)$(DOLLAR){MACOSX_BUNDLE_GUI_IDENTIFIER}/org.wxwidgets.$(id)/" \
-e "s/\$(DOLLAR)$(DOLLAR){MACOSX_BUNDLE_EXECUTABLE_NAME}/$(id)/" \
-e "s/\$(DOLLAR)$(DOLLAR){MACOSX_BUNDLE_BUNDLE_NAME}/$(id)/" \
-e "s/\$(DOLLAR)$(DOLLAR){MACOSX_BUNDLE_COPYRIGHT}/Copyright 2002-2023 wxWidgets/" \
-e "s/\$(DOLLAR)$(DOLLAR){MACOSX_BUNDLE_BUNDLE_VERSION}/$(WX_VERSION)/" \
-e "s/\$(DOLLAR)$(DOLLAR){MACOSX_BUNDLE_INFO_STRING}/$(id) version $(WX_VERSION), (c) 2002-2023 wxWidgets/" \
-e "s/\$(DOLLAR)$(DOLLAR){MACOSX_BUNDLE_LONG_VERSION_STRING}/$(WX_VERSION), (c) 2002-2023 wxWidgets/" \
-e "s/\$(DOLLAR)$(DOLLAR){MACOSX_BUNDLE_SHORT_VERSION_STRING}/$(WX_RELEASE)/" \
$(BUNDLE_PLIST) >$(BUNDLE)/Info.plist
<!-- PkgInfo: -->
@ -67,7 +64,7 @@
<!-- copy the application icon: -->
cp -f $(BUNDLE_ICON) $(BUNDLE)/Resources/wxmac.icns
</command>
</command>
<if cond="BUNDLE_RESOURCES!=''">
<command>
<!-- copy all other bundle resources: -->
@ -84,9 +81,9 @@
cp -f $(BUNDLE_FONT_RESOURCES) $(BUNDLE)/Resources/Fonts
</command>
</if>
</modify-target>
<!-- add pseudo target id_bundle: -->
<add-target target="$(id)_bundle" type="phony"
cond="target and PLATFORM_MACOSX=='1'"/>
@ -99,7 +96,7 @@
<modify-target target="clean">
<command>rm -rf $(id).app</command>
</modify-target>
</define-tag>
</makefile>

View file

@ -18,18 +18,17 @@ AUIDIR = $(WXDIR)/src/aui
RIBBONDIR = $(WXDIR)/src/ribbon
PROPGRIDDIR = $(WXDIR)/src/propgrid
STCDIR = $(WXDIR)/src/stc
SCINTILLADIR = $(WXDIR)/src/stc/scintilla
LEXILLADIR = $(WXDIR)/src/stc/lexilla
UNIXDIR = $(WXDIR)/src/unix
PNGDIR = $(WXDIR)/src/png
JPEGDIR = $(WXDIR)/src/jpeg
TIFFDIR = $(WXDIR)/src/tiff
ZLIBDIR = $(WXDIR)/src/zlib
REGEXDIR = $(WXDIR)/src/regex
EXPATDIR = $(WXDIR)/src/expat
GTKDIR = $(WXDIR)/src/gtk
GTK1DIR = $(WXDIR)/src/gtk1
X11DIR = $(WXDIR)/src/x11
X11INC = $(WXDIR)/include/wx/x11
MOTIFDIR = $(WXDIR)/src/motif
MSWDIR = $(WXDIR)/src/msw
MACDIR = $(WXDIR)/src/osx
COCOADIR = $(WXDIR)/src/cocoa
@ -76,7 +75,7 @@ CP_P = cp -p
ALL_DIST: distrib_clean
mkdir _dist_dir
mkdir $(DISTDIR)
$(CP_P) $(WXDIR)/configure.in $(DISTDIR)
$(CP_P) $(WXDIR)/configure.ac $(DISTDIR)
$(CP_P) $(WXDIR)/configure $(DISTDIR)
$(CP_P) $(WXDIR)/autoconf_inc.m4 $(DISTDIR)
$(CP_P) $(WXDIR)/wxwin.m4 $(DISTDIR)
@ -100,11 +99,6 @@ ALL_DIST: distrib_clean
$(CP_P) $(WXDIR)/lib/vms.opt $(DISTDIR)/lib
$(CP_P) $(WXDIR)/lib/vms_gtk.opt $(DISTDIR)/lib
mkdir $(DISTDIR)/src
# temp hack for common/execcmn.cpp: it's not supported by tmake
# yet (it's a header-like file but in src/common directory and it
# shouldn't be distributed...)
mkdir $(DISTDIR)/src/common
$(CP_P) $(SRCDIR)/common/execcmn.cpp $(DISTDIR)/src/common
mkdir $(DISTDIR)/src/xml
$(CP_P) $(SRCDIR)/xml/*.cpp $(DISTDIR)/src/xml
mkdir $(DISTDIR)/src/zlib
@ -112,11 +106,6 @@ ALL_DIST: distrib_clean
$(CP_P) $(ZLIBDIR)/*.c $(DISTDIR)/src/zlib
$(CP_P) $(ZLIBDIR)/README $(DISTDIR)/src/zlib
#$(CP_P) $(ZLIBDIR)/*.mms $(DISTDIR)/src/zlib
mkdir $(DISTDIR)/src/regex
$(CP_P) $(REGEXDIR)/*.h $(DISTDIR)/src/regex
$(CP_P) $(REGEXDIR)/*.c $(DISTDIR)/src/regex
$(CP_P) $(REGEXDIR)/COPYRIGHT $(DISTDIR)/src/regex
$(CP_P) $(REGEXDIR)/README $(DISTDIR)/src/regex
$(CP_PR) $(EXPATDIR) $(DISTDIR)/src/expat
#(cd $(DISTDIR)/src/expat ; rm -rf `find -name CVS`)
# copy some files from include/ that are not installed:
@ -147,7 +136,6 @@ ALL_DIST: distrib_clean
# but is not used when building wxBase distribution
ALL_GUI_DIST: ALL_DIST
$(CP_P) $(DOCDIR)/readme.txt $(DISTDIR)/README.txt
$(CP_P) $(DOCDIR)/$(TOOLKITDIR)/install.txt $(DISTDIR)/INSTALL.txt
if test -f $(DOCDIR)/$(TOOLKITDIR)/changes.txt ; then \
$(CP_P) $(DOCDIR)/$(TOOLKITDIR)/changes.txt $(DISTDIR)/CHANGES-$(TOOLKIT).txt ; fi
$(CP_P) $(DOCDIR)/$(TOOLKITDIR)/readme.txt $(DISTDIR)/README-$(TOOLKIT).txt
@ -195,10 +183,8 @@ ALL_GUI_DIST: ALL_DIST
mkdir $(DISTDIR)/art
mkdir $(DISTDIR)/art/gtk
mkdir $(DISTDIR)/art/motif
$(CP_P) $(WXDIR)/art/*.xpm $(DISTDIR)/art
$(CP_P) $(WXDIR)/art/gtk/*.xpm $(DISTDIR)/art/gtk
$(CP_P) $(WXDIR)/art/motif/*.xpm $(DISTDIR)/art/motif
mkdir $(DISTDIR)/src/$(TOOLKITDIR)
$(CP_P) $(COMMDIR)/*.cpp $(DISTDIR)/src/common
@ -233,12 +219,13 @@ ALL_GUI_DIST: ALL_DIST
$(CP_P) $(PROPGRIDDIR)/*.cpp $(DISTDIR)/src/propgrid
mkdir $(DISTDIR)/src/stc
mkdir $(DISTDIR)/src/stc/scintilla
mkdir $(DISTDIR)/src/stc/scintilla/src
mkdir $(DISTDIR)/src/stc/scintilla/include
$(CP_P) $(STCDIR)/*.* $(DISTDIR)/src/stc
$(CP_P) $(STCDIR)/scintilla/src/* $(DISTDIR)/src/stc/scintilla/src
$(CP_P) $(STCDIR)/scintilla/include/* $(DISTDIR)/src/stc/scintilla/include
mkdir $(DISTDIR)/src/stc/scintilla
$(CP_PR) $(SCINTILLADIR)/* $(DISTDIR)/src/stc/scintilla
mkdir $(DISTDIR)/src/stc/lexilla
$(CP_PR) $(LEXILLADIR)/* $(DISTDIR)/src/stc/lexilla
mkdir $(DISTDIR)/src/png
$(CP_PR) $(PNGDIR)/* $(DISTDIR)/src/png
@ -278,9 +265,9 @@ ALL_GUI_DIST: ALL_DIST
BASE_DIST: ALL_DIST INTL_DIST
# make --disable-gui the default
rm $(DISTDIR)/configure.in
rm $(DISTDIR)/configure.ac
sed 's/DEFAULT_wxUSE_GUI=yes/DEFAULT_wxUSE_GUI=no/' \
$(WXDIR)/configure.in > $(DISTDIR)/configure.in
$(WXDIR)/configure.ac > $(DISTDIR)/configure.ac
rm $(DISTDIR)/configure
sed 's/DEFAULT_wxUSE_GUI=yes/DEFAULT_wxUSE_GUI=no/' \
$(WXDIR)/configure > $(DISTDIR)/configure
@ -317,7 +304,6 @@ BASE_DIST: ALL_DIST INTL_DIST
mkdir $(DISTDIR)/samples
$(CP_P) $(SAMPDIR)/Makefile.in $(DISTDIR)/samples
$(CP_P) $(SAMPDIR)/makefile.* $(DISTDIR)/samples
$(CP_P) $(SAMPDIR)/Info.plist $(DISTDIR)/samples
$(CP_P) $(SAMPDIR)/sample.* $(DISTDIR)/samples
$(CP_P) $(SAMPDIR)/samples.* $(DISTDIR)/samples
@ -326,7 +312,6 @@ BASE_DIST: ALL_DIST INTL_DIST
$(CP_P) $(SAMPDIR)/console/makefile.unx $(DISTDIR)/samples/console
$(CP_P) $(SAMPDIR)/console/console.cpp $(DISTDIR)/samples/console
$(CP_P) $(SAMPDIR)/console/console.dsp $(DISTDIR)/samples/console
$(CP_P) $(SAMPDIR)/console/testdata.fc $(DISTDIR)/samples/console
mv $(DISTDIR) $(BASEDISTDIR)
@ -337,14 +322,6 @@ GTK_DIST: UNIV_DIST
$(CP_P) $(GTKDIR)/*.c $(DISTDIR)/src/gtk
$(CP_P) $(GTKDIR)/*.xbm $(DISTDIR)/src/gtk
$(CP_P) $(GTKDIR)/*.mms $(DISTDIR)/src/gtk
mkdir $(DISTDIR)/include/wx/gtk1
$(CP_P) $(INCDIR)/wx/gtk1/*.h $(DISTDIR)/include/wx/gtk1
mkdir $(DISTDIR)/src/gtk1
$(CP_P) $(GTK1DIR)/*.h $(DISTDIR)/src/gtk1
$(CP_P) $(GTK1DIR)/*.cpp $(DISTDIR)/src/gtk1
$(CP_P) $(GTK1DIR)/*.c $(DISTDIR)/src/gtk1
$(CP_P) $(GTK1DIR)/*.xbm $(DISTDIR)/src/gtk1
$(CP_P) $(GTK1DIR)/*.mms $(DISTDIR)/src/gtk1
mkdir $(DISTDIR)/include/wx/x11/private
$(CP_P) $(INCDIR)/wx/x11/private/*.h $(DISTDIR)/include/wx/x11/private
@ -376,25 +353,6 @@ X11_DIST: UNIV_DIST
mkdir $(DISTDIR)/include/wx/osx/core
$(CP_P) $(WXDIR)/include/wx/osx/core/*.h $(DISTDIR)/include/wx/osx/core
MOTIF_DIST: ALL_GUI_DIST
$(CP_P) $(INCDIR)/wx/motif/*.h $(DISTDIR)/include/wx/motif
$(CP_P) $(MOTIFDIR)/*.cpp $(DISTDIR)/src/motif
$(CP_P) $(MOTIFDIR)/*.xbm $(DISTDIR)/src/motif
mkdir $(DISTDIR)/src/motif/xmcombo
$(CP_P) $(MOTIFDIR)/xmcombo/*.c $(DISTDIR)/src/motif/xmcombo
$(CP_P) $(MOTIFDIR)/xmcombo/*.h $(DISTDIR)/src/motif/xmcombo
$(CP_P) $(MOTIFDIR)/xmcombo/copying.txt $(DISTDIR)/src/motif/xmcombo
mkdir $(DISTDIR)/src/x11
mkdir $(DISTDIR)/include/wx/x11
$(CP_P) $(X11DIR)/pen.cpp $(X11DIR)/brush.cpp $(X11DIR)/utilsx.cpp \
$(X11DIR)/bitmap.cpp $(X11DIR)/glcanvas.cpp $(X11DIR)/region.cpp \
$(DISTDIR)/src/x11
$(CP_P) $(X11INC)/pen.h $(X11INC)/brush.h $(X11INC)/privx.h \
$(X11INC)/bitmap.h $(X11INC)/glcanvas.h $(X11INC)/private.h $(X11INC)/region.h \
$(DISTDIR)/include/wx/x11
mkdir $(DISTDIR)/include/wx/x11/private
$(CP_P) $(INCDIR)/wx/x11/private/*.h $(DISTDIR)/include/wx/x11/private
OSX_CARBON_DIST: ALL_GUI_DIST
$(CP_P) $(INCDIR)/*.* $(DISTDIR)/include
mkdir $(DISTDIR)/include/wx/osx/carbon
@ -417,9 +375,6 @@ OSX_CARBON_DIST: ALL_GUI_DIST
$(CP_P) $(MACDIR)/cocoa/*.mm $(DISTDIR)/src/osx/cocoa
mkdir $(DISTDIR)/src/osx/iphone
$(CP_P) $(MACDIR)/iphone/*.mm $(DISTDIR)/src/osx/iphone
mkdir $(DISTDIR)/src/html/htmlctrl
mkdir $(DISTDIR)/src/html/htmlctrl/webkit
$(CP_P) $(WXDIR)/src/html/htmlctrl/webkit/*.mm $(DISTDIR)/src/html/htmlctrl/webkit
mkdir $(DISTDIR)/src/osx/carbon
$(CP_P) $(MACDIR)/carbon/*.cpp $(DISTDIR)/src/osx/carbon
$(CP_P) $(MACDIR)/carbon/*.mm $(DISTDIR)/src/osx/carbon
@ -479,7 +434,6 @@ UNIV_DIST: ALL_GUI_DIST
mkdir $(DISTDIR)/src/univ
mkdir $(DISTDIR)/src/univ/themes
$(CP_P) $(INCDIR)/wx/univ/*.h $(DISTDIR)/include/wx/univ
$(CP_P) $(INCDIR)/wx/univ/setup0.h $(DISTDIR)/include/wx/univ/setup.h
$(CP_P) $(SRCDIR)/univ/*.cpp $(DISTDIR)/src/univ
$(CP_P) $(SRCDIR)/univ/themes/*.cpp $(DISTDIR)/src/univ/themes
@ -544,7 +498,6 @@ SAMPLES_DIST: ALL_GUI_DIST
mkdir $(DISTDIR)/samples
$(CP_P) $(SAMPDIR)/Makefile.in $(DISTDIR)/samples
$(CP_P) $(SAMPDIR)/makefile.* $(DISTDIR)/samples
$(CP_P) $(SAMPDIR)/Info.plist $(DISTDIR)/samples
$(CP_P) $(SAMPDIR)/sample.* $(DISTDIR)/samples
$(CP_P) $(SAMPDIR)/samples.* $(DISTDIR)/samples
@ -795,7 +748,7 @@ distdir: @GUIDIST@
@# in other dist targets.
find $(DISTDIR) \( -name "CVS" -o -name ".cvsignore" -o -name "*.dsp" -o -name "*.dsw" -o -name "*.hh*" -o \
\( -name "makefile.*" -a ! -name "makefile.gcc" -a ! -name "makefile.unx" \) \) \
-print | egrep -v '/samples/.*\.hh.$$' | xargs rm -rf
-print | grep -vE '/samples/.*\.hh.$$' | xargs rm -rf
dist: distdir
@cd _dist_dir && tar ch $(DISTDIRNAME) | gzip -f9 > ../$(WXARCHIVE);

View file

@ -9,7 +9,7 @@
<set var="MONOLIB_GUI_SRC">
<if cond="USE_GUI=='1'">
$(CORE_SRC) $(ADVANCED_SRC) $(MEDIA_SRC) $(HTML_SRC) $(WEBVIEW_SRC)
$(CORE_SRC) $(MEDIA_SRC) $(HTML_SRC) $(WEBVIEW_SRC)
$(QA_SRC) $(XRC_SRC) $(AUI_SRC) $(PROPGRID_SRC) $(RIBBON_SRC)
$(RICHTEXT_SRC) $(MONOLIB_STC_SRC)
</if>
@ -19,7 +19,7 @@
</set>
<!-- settings common to mono{dll,lib} below -->
<template id="wx_monolib_or_dll" template="wxscintilla_cppflags">
<template id="wx_monolib_or_dll" template="wxscintilla_cppflags,wxlexilla_cppflags,webview_additional">
<define>wxUSE_BASE=1</define>
<sources>$(MONOLIB_SRC) $(PLUGIN_MONOLIB_SRC)</sources>
<msvc-headers>$(ALL_HEADERS)</msvc-headers>
@ -28,18 +28,18 @@
<dll id="monodll" template="wx_dll,wx_monolib_or_dll"
cond="SHARED=='1' and MONOLITHIC=='1'">
<define>WXMAKINGDLL</define>
<define>$(webviewdll_ext_dir_define)</define>
<ldlibs>$(EXTRALIBS_XML)</ldlibs>
<ldlibs>$(EXTRALIBS_HTML)</ldlibs>
<ldlibs>$(EXTRALIBS_MEDIA)</ldlibs>
<ldlibs>$(EXTRALIBS_STC)</ldlibs>
<ldlibs>$(PLUGIN_MONOLIB_EXTRALIBS)</ldlibs>
<ldlibs>$(EXTRALIBS_WEBVIEW)</ldlibs>
<library>$(wxscintilla_library_link)</library>
<library>$(wxlexilla_library_link)</library>
</dll>
<lib id="monolib" template="wx_lib,wx_monolib_or_dll"
cond="SHARED=='0' and MONOLITHIC=='1'">
<define>$(webviewdll_ext_dir_define)</define>
<if cond="FORMAT=='watcom'">
<set var="LIB_PAGESIZE" overwrite="1">8192</set>
</if>

View file

@ -49,14 +49,14 @@
<define>WXUSINGDLL</define>
<define>WXMAKINGDLL_NET</define>
<sources>$(NET_SRC)</sources>
<msvc-headers>$(NET_CMN_HDR) $(NET_PLATFORM_HDR)</msvc-headers>
<msvc-headers>$(NET_CMN_HDR)</msvc-headers>
<library>basedll</library>
</dll>
<lib id="netlib" template="wx_base_lib"
cond="SHARED=='0' and MONOLITHIC=='0'">
<sources>$(NET_SRC)</sources>
<msvc-headers>$(NET_CMN_HDR) $(NET_PLATFORM_HDR)</msvc-headers>
<msvc-headers>$(NET_CMN_HDR)</msvc-headers>
</lib>
<wxshortcut id="wxnet" cond="MONOLITHIC=='0'"/>
@ -73,7 +73,7 @@
<define>WXUSINGDLL</define>
<define>WXMAKINGDLL_CORE</define>
<define>wxUSE_BASE=0</define>
<sources>$(BASE_AND_GUI_SRC) $(CORE_SRC)</sources>
<sources>$(BASE_AND_GUI_SRC) $(CORE_SRC) $(PLUGIN_SRC)</sources>
<msvc-headers>$(ALL_GUI_HEADERS)</msvc-headers>
<library>basedll</library>
</dll>
@ -81,7 +81,7 @@
<lib id="corelib" template="wx_lib"
cond="SHARED=='0' and USE_GUI=='1' and MONOLITHIC=='0'">
<define>wxUSE_BASE=0</define>
<sources>$(BASE_AND_GUI_SRC) $(CORE_SRC)</sources>
<sources>$(BASE_AND_GUI_SRC) $(CORE_SRC) $(PLUGIN_SRC)</sources>
<msvc-headers>$(ALL_GUI_HEADERS)</msvc-headers>
</lib>
@ -98,7 +98,7 @@
cond="SHARED=='1' and USE_GUI=='1' and MONOLITHIC=='0'">
<define>WXUSINGDLL</define>
<define>WXMAKINGDLL_ADV</define>
<sources>$(ADVANCED_SRC) $(PLUGIN_ADV_SRC)</sources>
<sources>$(ADVANCED_SRC)</sources>
<msvc-headers>$(ADVANCED_HDR)</msvc-headers>
<library>coredll</library>
<library>basedll</library>
@ -107,7 +107,7 @@
<lib id="advlib" template="wx_lib"
cond="SHARED=='0' and USE_GUI=='1' and MONOLITHIC=='0'">
<sources>$(ADVANCED_SRC) $(PLUGIN_ADV_SRC)</sources>
<sources>$(ADVANCED_SRC)</sources>
<msvc-headers>$(ADVANCED_HDR)</msvc-headers>
</lib>
@ -176,11 +176,10 @@
<!-- wxWEBVIEW -->
<!-- ================================================================ -->
<dll id="webviewdll" template="wx_dll"
<dll id="webviewdll" template="wx_dll,webview_additional"
cond="SHARED=='1' and USE_GUI=='1' and USE_WEBVIEW=='1' and MONOLITHIC=='0'">
<define>WXUSINGDLL</define>
<define>WXMAKINGDLL_WEBVIEW</define>
<define>$(webviewdll_ext_dir_define)</define>
<sources>$(WEBVIEW_SRC)</sources>
<library>coredll</library>
<library>basedll</library>
@ -188,7 +187,7 @@
<msvc-headers>$(WEBVIEW_HDR)</msvc-headers>
</dll>
<lib id="webviewlib" template="wx_lib"
<lib id="webviewlib" template="wx_lib,webview_additional"
cond="SHARED=='0' and USE_GUI=='1' and USE_WEBVIEW=='1' and MONOLITHIC=='0'">
<sources>$(WEBVIEW_SRC)</sources>
<msvc-headers>$(WEBVIEW_HDR)</msvc-headers>
@ -261,7 +260,7 @@
<!-- ================================================================ -->
<dll id="xmldll" template="wx_base_dll"
cond="SHARED=='1' and MONOLITHIC=='0'">
cond="SHARED=='1' and USE_XML=='1' and MONOLITHIC=='0'">
<define>WXUSINGDLL</define>
<define>WXMAKINGDLL_XML</define>
<sources>$(XML_SRC)</sources>
@ -271,12 +270,12 @@
</dll>
<lib id="xmllib" template="wx_base_lib"
cond="SHARED=='0' and MONOLITHIC=='0'">
cond="SHARED=='0' and USE_XML=='1' and MONOLITHIC=='0'">
<sources>$(XML_SRC)</sources>
<msvc-headers>$(XML_HDR)</msvc-headers>
</lib>
<wxshortcut id="wxxml" cond="MONOLITHIC=='0'"/>
<wxshortcut id="wxxml" cond="USE_XML=='1' and MONOLITHIC=='0'"/>
<set var="MSVC6PRJ_MERGED_TARGETS_MULTILIB" append="1">xml=xmllib+xmldll</set>
@ -285,12 +284,11 @@
<!-- ================================================================ -->
<dll id="xrcdll" template="wx_dll"
cond="SHARED=='1' and USE_XRC=='1' and MONOLITHIC=='0'">
cond="SHARED=='1' and USE_XML=='1' and USE_XRC=='1' and MONOLITHIC=='0'">
<define>WXUSINGDLL</define>
<define>WXMAKINGDLL_XRC</define>
<sources>$(XRC_SRC)</sources>
<library>$(htmldll_library_link)</library>
<library>advdll</library>
<library>coredll</library>
<library>xmldll</library>
<library>basedll</library>
@ -316,7 +314,6 @@
<define>WXUSINGDLL</define>
<define>WXMAKINGDLL_AUI</define>
<sources>$(AUI_SRC)</sources>
<library>advdll</library>
<library>coredll</library>
<library>basedll</library>
<msvc-headers>$(AUI_HDR)</msvc-headers>
@ -341,7 +338,6 @@
<define>WXUSINGDLL</define>
<define>WXMAKINGDLL_RIBBON</define>
<sources>$(RIBBON_SRC)</sources>
<library>advdll</library>
<library>coredll</library>
<library>basedll</library>
<msvc-headers>$(RIBBON_HDR)</msvc-headers>
@ -366,7 +362,6 @@
<define>WXUSINGDLL</define>
<define>WXMAKINGDLL_PROPGRID</define>
<sources>$(PROPGRID_SRC)</sources>
<library>advdll</library>
<library>coredll</library>
<library>basedll</library>
<msvc-headers>$(PROPGRID_HDR)</msvc-headers>
@ -387,11 +382,10 @@
<!-- ================================================================ -->
<dll id="richtextdll" template="wx_dll"
cond="SHARED=='1' and USE_RICHTEXT=='1' and MONOLITHIC=='0'">
cond="SHARED=='1' and USE_RICHTEXT=='1' and USE_XML=='1' and MONOLITHIC=='0'">
<define>WXUSINGDLL</define>
<define>WXMAKINGDLL_RICHTEXT</define>
<sources>$(RICHTEXT_SRC)</sources>
<library>advdll</library>
<library>$(htmldll_library_link)</library>
<library>xmldll</library>
<library>coredll</library>
@ -413,8 +407,9 @@
<!-- STC -->
<!-- ================================================================ -->
<template id="stc_base" template="wxscintilla_cppflags">
<template id="stc_base" template="wxscintilla_cppflags,wxlexilla_cppflags">
<library>wxscintilla</library>
<library>wxlexilla</library>
</template>
<dll id="stcdll" template="wx_dll,stc_base"
@ -424,6 +419,7 @@
<sources>$(STC_SRC)</sources>
<library>coredll</library>
<library>basedll</library>
<ldlibs>$(EXTRALIBS_STC)</ldlibs>
<msvc-headers>$(STC_HDR)</msvc-headers>
</dll>
@ -432,7 +428,7 @@
<sources>$(STC_SRC)</sources>
<msvc-headers>$(STC_HDR)</msvc-headers>
</lib>
<wxshortcut id="wxstc" cond="MONOLITHIC=='0' and USE_STC=='1'"/>
<set var="MSVC6PRJ_MERGED_TARGETS_MULTILIB" append="1">stc=stclib+stcdll</set>

View file

@ -7,7 +7,7 @@
<!-- ================================================================ -->
<wx-base-plugin id="sound_sdl" cond="WITH_PLUGIN_SDL=='1'">
<sources>$(UNIX_SOUND_SRC_SDL)</sources>
<sources>$(UNIX_SOUND_SDL_SRC)</sources>
<ldlibs>$(EXTRALIBS_SDL)</ldlibs>
</wx-base-plugin>

View file

@ -25,6 +25,7 @@
cond="wxUSE_LIBPNG=='builtin' and USE_GUI=='1' and BUILDING_LIB=='1'">
<dirname>$(LIBDIRNAME)</dirname>
<include>$(INC_ZLIB)</include>
<define>PNG_INTEL_SSE</define>
<cflags-borland>-w-8004</cflags-borland>
<cflags-watcom>-wcd=124</cflags-watcom>
<sources>
@ -43,7 +44,20 @@
src/png/pngwrite.c
src/png/pngwtran.c
src/png/pngwutil.c
src/png/arm/arm_init.c
src/png/arm/filter_neon_intrinsics.c
src/png/arm/palette_neon_intrinsics.c
src/png/intel/intel_init.c
src/png/intel/filter_sse2_intrinsics.c
</sources>
<if cond="IS_MSVC=='0'">
<sources>
src/png/mips/filter_msa_intrinsics.c
src/png/mips/mips_init.c
src/png/powerpc/filter_vsx_intrinsics.c
src/png/powerpc/powerpc_init.c
</sources>
</if>
</lib>
</makefile>

View file

@ -4,45 +4,75 @@
<if cond="FORMAT=='autoconf'">
<option name="wxUSE_REGEX"/>
<option name="wxPCRE2_CODE_UNIT_WIDTH"/>
<set var="LIB_REGEX">
<if cond="wxUSE_REGEX=='builtin'">
wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
wxregexu$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
</if>
</set>
<set var="INC_REGEX_BUILD">
$(wx_top_builddir)/3rdparty/pcre/src
</set>
</if>
<if cond="FORMAT!='autoconf'">
<set var="wxUSE_REGEX">builtin</set>
<set var="LIB_REGEX">
<if cond="wxUSE_REGEX=='builtin'">
wxregex$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(HOST_SUFFIX)
wxregexu$(WXDEBUGFLAG)$(HOST_SUFFIX)
</if>
</set>
</if>
<set var="INC_REGEX">
<if cond="wxUSE_REGEX=='builtin'">$(TOP_SRCDIR)src/regex</if>
<if cond="wxUSE_REGEX=='builtin'">
$(TOP_SRCDIR)3rdparty/pcre/src/wx
</if>
</set>
<lib id="wxregex" template="msvc_setup_h,3rdparty_lib"
cond="wxUSE_REGEX=='builtin' and BUILDING_LIB=='1'">
<libname cond="FORMAT=='autoconf'">
$(id)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
$(id)u$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
</libname>
<libname cond="FORMAT!='autoconf'">
$(id)$(WXUNICODEFLAG)$(WXDEBUGFLAG)$(HOST_SUFFIX)
$(id)u$(WXDEBUGFLAG)$(HOST_SUFFIX)
</libname>
<include cond="FORMAT!='autoconf'">$(TOP_SRCDIR)include</include>
<include cond="FORMAT!='autoconf'">$(SETUPHDIR)</include>
<define>__WX$(TOOLKIT)__</define>
<define>$(WXUNIV_DEFINE)</define>
<define>$(UNICODE_DEFINE)</define>
<include cond="FORMAT!='autoconf'">$(INC_REGEX)</include>
<include cond="FORMAT=='autoconf'">$(INC_REGEX_BUILD)</include>
<define>__WX__</define>
<define>HAVE_CONFIG_H</define>
<define cond="FORMAT=='autoconf'">PCRE2_CODE_UNIT_WIDTH=$(wxPCRE2_CODE_UNIT_WIDTH)</define>
<dirname>$(LIBDIRNAME)</dirname>
<cflags-borland>-w-8008 -w-8012 -w-8057 -w-8064 -w-8066 -w-8070</cflags-borland>
<cflags-dmars>-w12</cflags-dmars>
<sources>
src/regex/regcomp.c
src/regex/regexec.c
src/regex/regerror.c
src/regex/regfree.c
3rdparty/pcre/src/pcre2_auto_possess.c
3rdparty/pcre/src/pcre2_compile.c
3rdparty/pcre/src/pcre2_config.c
3rdparty/pcre/src/pcre2_context.c
3rdparty/pcre/src/pcre2_convert.c
3rdparty/pcre/src/pcre2_dfa_match.c
3rdparty/pcre/src/pcre2_error.c
3rdparty/pcre/src/pcre2_extuni.c
3rdparty/pcre/src/pcre2_find_bracket.c
3rdparty/pcre/src/pcre2_jit_compile.c
3rdparty/pcre/src/pcre2_maketables.c
3rdparty/pcre/src/pcre2_match.c
3rdparty/pcre/src/pcre2_match_data.c
3rdparty/pcre/src/pcre2_newline.c
3rdparty/pcre/src/pcre2_ord2utf.c
3rdparty/pcre/src/pcre2_pattern_info.c
3rdparty/pcre/src/pcre2_script_run.c
3rdparty/pcre/src/pcre2_serialize.c
3rdparty/pcre/src/pcre2_string_utils.c
3rdparty/pcre/src/pcre2_study.c
3rdparty/pcre/src/pcre2_substitute.c
3rdparty/pcre/src/pcre2_substring.c
3rdparty/pcre/src/pcre2_tables.c
3rdparty/pcre/src/pcre2_ucd.c
3rdparty/pcre/src/pcre2_valid_utf.c
3rdparty/pcre/src/pcre2_xclass.c
3rdparty/pcre/src/pcre2_chartables.c
</sources>
</lib>

View file

@ -3,7 +3,9 @@
<if cond="FORMAT=='autoconf'">
<set var="LIB_SCINTILLA">
wxscintilla$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
<if cond="USE_STC=='1'">
wxscintilla$(WXDEBUGFLAG)$(WX_LIB_FLAVOUR)-$(WX_RELEASE)$(HOST_SUFFIX)
</if>
</set>
</if>
<if cond="FORMAT!='autoconf'">
@ -11,15 +13,13 @@
wxscintilla$(WXDEBUGFLAG)$(HOST_SUFFIX)
</set>
</if>
<set var="INC_SCINTILLA">
$(TOP_SRCDIR)src/stc/scintilla/include
</set>
<!-- automatically update generated files when building the library -->
<if cond="BUILDING_LIB=='1'">
<fragment format='autoconf'>
@COND_PYTHON@@COND_USE_STC_1@$(srcdir)/include/wx/stc/stc.h: \
@COND_PYTHON@@COND_USE_STC_1@$(srcdir)/src/stc/scintilla/include/Scintilla.iface \
@COND_PYTHON@@COND_USE_STC_1@$(srcdir)/src/stc/lexilla/include/LexicalStyles.iface \
@COND_PYTHON@@COND_USE_STC_1@$(srcdir)/src/stc/stc.cpp.in \
@COND_PYTHON@@COND_USE_STC_1@$(srcdir)/src/stc/stc.h.in \
@COND_PYTHON@@COND_USE_STC_1@$(srcdir)/src/stc/gen_iface.py
@ -31,13 +31,8 @@
<template id="wxscintilla_cppflags">
<include>$(TOP_SRCDIR)src/stc/scintilla/include</include>
<include>$(TOP_SRCDIR)src/stc/scintilla/lexlib</include>
<include>$(TOP_SRCDIR)src/stc/scintilla/src</include>
<define>__WX__</define>
<define>SCI_LEXER</define>
<define>NO_CXX11_REGEX</define>
<define>LINK_LEXERS</define>
<cppflags-borland>-w-8027</cppflags-borland>
</template>
<set var="wxscintilla_usingdll">
@ -54,137 +49,23 @@
<define>__WX$(TOOLKIT)__</define>
<define>$(WXUNIV_DEFINE)</define>
<define>$(DEBUG_DEFINE)</define>
<define>$(UNICODE_DEFINE)</define>
<dirname>$(LIBDIRNAME)</dirname>
<sources>
src/stc/scintilla/lexers/LexA68k.cxx
src/stc/scintilla/lexers/LexAbaqus.cxx
src/stc/scintilla/lexers/LexAda.cxx
src/stc/scintilla/lexers/LexAPDL.cxx
src/stc/scintilla/lexers/LexAsm.cxx
src/stc/scintilla/lexers/LexAsn1.cxx
src/stc/scintilla/lexers/LexASY.cxx
src/stc/scintilla/lexers/LexAU3.cxx
src/stc/scintilla/lexers/LexAVE.cxx
src/stc/scintilla/lexers/LexAVS.cxx
src/stc/scintilla/lexers/LexBaan.cxx
src/stc/scintilla/lexers/LexBash.cxx
src/stc/scintilla/lexers/LexBasic.cxx
src/stc/scintilla/lexers/LexBatch.cxx
src/stc/scintilla/lexers/LexBibTeX.cxx
src/stc/scintilla/lexers/LexBullant.cxx
src/stc/scintilla/lexers/LexCaml.cxx
src/stc/scintilla/lexers/LexCLW.cxx
src/stc/scintilla/lexers/LexCmake.cxx
src/stc/scintilla/lexers/LexCOBOL.cxx
src/stc/scintilla/lexers/LexCoffeeScript.cxx
src/stc/scintilla/lexers/LexConf.cxx
src/stc/scintilla/lexers/LexCPP.cxx
src/stc/scintilla/lexers/LexCrontab.cxx
src/stc/scintilla/lexers/LexCsound.cxx
src/stc/scintilla/lexers/LexCSS.cxx
src/stc/scintilla/lexers/LexD.cxx
src/stc/scintilla/lexers/LexDiff.cxx
src/stc/scintilla/lexers/LexDMAP.cxx
src/stc/scintilla/lexers/LexDMIS.cxx
src/stc/scintilla/lexers/LexECL.cxx
src/stc/scintilla/lexers/LexEDIFACT.cxx
src/stc/scintilla/lexers/LexEiffel.cxx
src/stc/scintilla/lexers/LexErlang.cxx
src/stc/scintilla/lexers/LexErrorList.cxx
src/stc/scintilla/lexers/LexEScript.cxx
src/stc/scintilla/lexers/LexFlagship.cxx
src/stc/scintilla/lexers/LexForth.cxx
src/stc/scintilla/lexers/LexFortran.cxx
src/stc/scintilla/lexers/LexGAP.cxx
src/stc/scintilla/lexers/LexGui4Cli.cxx
src/stc/scintilla/lexers/LexHaskell.cxx
src/stc/scintilla/lexers/LexHex.cxx
src/stc/scintilla/lexers/LexHTML.cxx
src/stc/scintilla/lexers/LexInno.cxx
src/stc/scintilla/lexers/LexJSON.cxx
src/stc/scintilla/lexers/LexKix.cxx
src/stc/scintilla/lexers/LexKVIrc.cxx
src/stc/scintilla/lexers/LexLaTeX.cxx
src/stc/scintilla/lexers/LexLisp.cxx
src/stc/scintilla/lexers/LexLout.cxx
src/stc/scintilla/lexers/LexLua.cxx
src/stc/scintilla/lexers/LexMagik.cxx
src/stc/scintilla/lexers/LexMake.cxx
src/stc/scintilla/lexers/LexMarkdown.cxx
src/stc/scintilla/lexers/LexMatlab.cxx
src/stc/scintilla/lexers/LexMetapost.cxx
src/stc/scintilla/lexers/LexMMIXAL.cxx
src/stc/scintilla/lexers/LexModula.cxx
src/stc/scintilla/lexers/LexMPT.cxx
src/stc/scintilla/lexers/LexMSSQL.cxx
src/stc/scintilla/lexers/LexMySQL.cxx
src/stc/scintilla/lexers/LexNimrod.cxx
src/stc/scintilla/lexers/LexNsis.cxx
src/stc/scintilla/lexers/LexNull.cxx
src/stc/scintilla/lexers/LexOpal.cxx
src/stc/scintilla/lexers/LexOScript.cxx
src/stc/scintilla/lexers/LexPascal.cxx
src/stc/scintilla/lexers/LexPB.cxx
src/stc/scintilla/lexers/LexPerl.cxx
src/stc/scintilla/lexers/LexPLM.cxx
src/stc/scintilla/lexers/LexPO.cxx
src/stc/scintilla/lexers/LexPOV.cxx
src/stc/scintilla/lexers/LexPowerPro.cxx
src/stc/scintilla/lexers/LexPowerShell.cxx
src/stc/scintilla/lexers/LexProgress.cxx
src/stc/scintilla/lexers/LexProps.cxx
src/stc/scintilla/lexers/LexPS.cxx
src/stc/scintilla/lexers/LexPython.cxx
src/stc/scintilla/lexers/LexR.cxx
src/stc/scintilla/lexers/LexRebol.cxx
src/stc/scintilla/lexers/LexRegistry.cxx
src/stc/scintilla/lexers/LexRuby.cxx
src/stc/scintilla/lexers/LexRust.cxx
src/stc/scintilla/lexers/LexScriptol.cxx
src/stc/scintilla/lexers/LexSmalltalk.cxx
src/stc/scintilla/lexers/LexSML.cxx
src/stc/scintilla/lexers/LexSorcus.cxx
src/stc/scintilla/lexers/LexSpecman.cxx
src/stc/scintilla/lexers/LexSpice.cxx
src/stc/scintilla/lexers/LexSQL.cxx
src/stc/scintilla/lexers/LexSTTXT.cxx
src/stc/scintilla/lexers/LexTACL.cxx
src/stc/scintilla/lexers/LexTADS3.cxx
src/stc/scintilla/lexers/LexTAL.cxx
src/stc/scintilla/lexers/LexTCL.cxx
src/stc/scintilla/lexers/LexTCMD.cxx
src/stc/scintilla/lexers/LexTeX.cxx
src/stc/scintilla/lexers/LexTxt2tags.cxx
src/stc/scintilla/lexers/LexVB.cxx
src/stc/scintilla/lexers/LexVerilog.cxx
src/stc/scintilla/lexers/LexVHDL.cxx
src/stc/scintilla/lexers/LexVisualProlog.cxx
src/stc/scintilla/lexers/LexYAML.cxx
src/stc/scintilla/lexlib/Accessor.cxx
src/stc/scintilla/lexlib/CharacterCategory.cxx
src/stc/scintilla/lexlib/CharacterSet.cxx
src/stc/scintilla/lexlib/LexerBase.cxx
src/stc/scintilla/lexlib/LexerModule.cxx
src/stc/scintilla/lexlib/LexerNoExceptions.cxx
src/stc/scintilla/lexlib/LexerSimple.cxx
src/stc/scintilla/lexlib/PropSetSimple.cxx
src/stc/scintilla/lexlib/StyleContext.cxx
src/stc/scintilla/lexlib/WordList.cxx
src/stc/scintilla/src/AutoComplete.cxx
src/stc/scintilla/src/CallTip.cxx
src/stc/scintilla/src/CaseConvert.cxx
src/stc/scintilla/src/CaseFolder.cxx
src/stc/scintilla/src/Catalogue.cxx
src/stc/scintilla/src/CellBuffer.cxx
src/stc/scintilla/src/CharClassify.cxx
src/stc/scintilla/src/CharacterCategory.cxx
src/stc/scintilla/src/CharacterSet.cxx
src/stc/scintilla/src/ContractionState.cxx
src/stc/scintilla/src/DBCS.cxx
src/stc/scintilla/src/Decoration.cxx
src/stc/scintilla/src/Document.cxx
src/stc/scintilla/src/EditModel.cxx
src/stc/scintilla/src/EditView.cxx
src/stc/scintilla/src/Editor.cxx
src/stc/scintilla/src/ExternalLexer.cxx
src/stc/scintilla/src/Indicator.cxx
src/stc/scintilla/src/KeyMap.cxx
src/stc/scintilla/src/LineMarker.cxx
@ -197,6 +78,7 @@
src/stc/scintilla/src/Selection.cxx
src/stc/scintilla/src/Style.cxx
src/stc/scintilla/src/UniConversion.cxx
src/stc/scintilla/src/UniqueString.cxx
src/stc/scintilla/src/ViewStyle.cxx
src/stc/scintilla/src/XPM.cxx
</sources>

View file

@ -85,7 +85,14 @@
src/tiff/libtiff/tif_packbits.c
src/tiff/libtiff/tif_pixarlog.c
src/tiff/libtiff/tif_predict.c
<!--
Exclude this file because it contains only TIFFPrintDirectory()
function that we never use, but compiling which generates tons
of warnings when using MinGW (e.g. when cross-compiling) and it
seems simpler to just not compile it at all than to fix them.
src/tiff/libtiff/tif_print.c
-->
src/tiff/libtiff/tif_read.c
src/tiff/libtiff/tif_strip.c
src/tiff/libtiff/tif_swab.c
@ -93,8 +100,10 @@
src/tiff/libtiff/tif_tile.c
src/tiff/libtiff/tif_version.c
src/tiff/libtiff/tif_warning.c
src/tiff/libtiff/tif_webp.c
src/tiff/libtiff/tif_write.c
src/tiff/libtiff/tif_zip.c
src/tiff/libtiff/tif_zstd.c
</sources>
</lib>

View file

@ -22,7 +22,7 @@
3. Else, i.e. if there were no changes at all to API but only internal
changes, change C:R:A to C:R+1:A
-->
<set var="WX_CURRENT">2</set>
<set var="WX_CURRENT">0</set>
<set var="WX_REVISION">0</set>
<set var="WX_AGE">0</set>

View file

@ -47,7 +47,7 @@
<!-- WXRC compiler is built by default: -->
<!-- FIXME: this is dirty hack, better bakefile support for
conditional and optional subprojects is needed -->
<action id="wxrc" cond="USE_XRC=='1'">
<action id="wxrc" cond="USE_XML=='1'">
<dependency-of>all</dependency-of>
<!-- some of these are not built in all configurations, <depends>
@ -63,13 +63,13 @@
(if test -f utils/wxrc/Makefile ; then cd utils/wxrc &amp;&amp; $(DOLLAR)(MAKE) all ; fi)
</command>
</action>
<action id="clean-wxrc" cond="USE_XRC=='1'">
<action id="clean-wxrc" cond="USE_XML=='1'">
<dependency-of>clean</dependency-of>
<command>
(if test -f utils/wxrc/Makefile ; then cd utils/wxrc &amp;&amp; $(DOLLAR)(MAKE) clean ; fi)
</command>
</action>
<action id="install-wxrc" cond="USE_XRC=='1'">
<action id="install-wxrc" cond="USE_XML=='1'">
<dependency-of>install</dependency-of>
<depends>wxrc</depends>
<command>
@ -95,7 +95,7 @@
<command>
$(INSTALL_DIR) $(DESTDIR)$(BINDIR)
$(INSTALL_DIR) $(DESTDIR)$(LIBDIR)/wx/config
$(INSTALL_PROGRAM) lib/wx/config/$(TOOLCHAIN_FULLNAME) $(DESTDIR)$(LIBDIR)/wx/config
$(INSTALL_SCRIPT) lib/wx/config/$(TOOLCHAIN_FULLNAME) $(DESTDIR)$(LIBDIR)/wx/config
(cd $(DESTDIR)$(BINDIR) &amp;&amp; rm -f wx-config &amp;&amp; $(LN_S) $(LIBDIR)/wx/config/$(TOOLCHAIN_FULLNAME) wx-config || cp -p $(DESTDIR)$(LIBDIR)/wx/config/$(TOOLCHAIN_FULLNAME) wx-config)
</command>
</action>
@ -137,19 +137,13 @@
<using module="gettext"/>
<gettext-catalogs id="locale">
<srcdir>$(SRCDIR)/locale</srcdir>
<catalog-name>wxstd</catalog-name>
<catalog-name>wxstd-$(WX_RELEASE)</catalog-name>
<linguas>
ca cs da de el es fi fr hu id it ja nl pl ru sl sv tr uk
zh zh_CN zh_TW
</linguas>
<install-to>$(LOCALEDIR)</install-to>
</gettext-catalogs>
<gettext-catalogs id="locale_msw">
<srcdir>$(SRCDIR)/locale/msw</srcdir>
<catalog-name>wxmsw</catalog-name>
<linguas>it</linguas>
<install-to>$(LOCALEDIR)</install-to>
</gettext-catalogs>
</if>
@ -173,11 +167,6 @@
<if cond="WXUNIV=='0'">$(TOOLKIT_LOWERCASE)</if>
</set>
<copy-file-to-file-if-not-exist id="master_setup.h">
<src>$(SRCDIR)/include/wx/$(SETUP_H_SUBDIR)/setup0.h</src>
<dst>$(SRCDIR)/include/wx/$(SETUP_H_SUBDIR)/setup.h</dst>
<dependency-of>setup_h</dependency-of>
</copy-file-to-file-if-not-exist>
<copy-file-to-file-if-not-exist id="setup.h">
<dependency-of>setup_h</dependency-of>
<src>$(SRCDIR)/include/wx/$(SETUP_H_SUBDIR)/setup.h</src>
@ -205,7 +194,7 @@
<depends-on-file>$(SRCDIR)/include/wx/msw/genrcdefs.h</depends-on-file>
<command>
$(DOLLAR)(CPP) "$(nativePaths(SRCDIR))\include\wx\msw\genrcdefs.h" > "$(SETUPHDIR)\wx\msw\rcdefs.h"
$(DOLLAR)(CPP) $(DOLLAR)(CPPFLAGS) "$(nativePaths(SRCDIR))\include\wx\msw\genrcdefs.h" > "$(SETUPHDIR)\wx\msw\rcdefs.h"
</command>
</action>

View file

@ -118,7 +118,7 @@ would like to build, separated by commas. Valid values are:
TIP: autoconf Project Type
---------------------------
You may notice that in the sample folder, there is also a file called
configure.in. That file is the input for autoconf, which creates the configure
configure.ac. That file is the input for autoconf, which creates the configure
scripts that you often see when you build software from source on Unix-based
platforms. People use configure scripts because they make your Unix makefiles
more portable by automatically detecting the right libraries and commands to
@ -126,7 +126,7 @@ use on the user's machine and OS. This is necessary because there are many
Unix-based operating systems and they all are slightly different in various
small ways.
Bakefile does not generate a configure or configure.in script, so if you want
Bakefile does not generate a configure or configure.ac script, so if you want
to use configure scripts with your Unix-based software, you will need to learn
how to use autoconf. Unfortunately, this topic deserves a book all its own and
is beyond the scope of this tutorial, but a book on the subject can be found
@ -167,8 +167,8 @@ subfolder of Bakefile, or you can also find it on the Bakefile web site.
-- Build Options --
What if you want to offer a DEBUG and a RELEASE build? Or a UNICODE/ANSI
build? You can do this in Bakefile by creating options. To create an option,
What if you want to offer a DEBUG and a RELEASE build?
You can do this in Bakefile by creating options. To create an option,
use the "<option>" tag. A typical option has three important parts: a name, a
default value, and a comma-separated list of values. For example, here is how
to create a DEBUG option which builds debug by default:
@ -235,7 +235,6 @@ options are:
WX_MONOLITHIC 0(default),1 Set this to 1 if you built wx
as a monolithic library
WX_SHARED 0(default),1 Specify static or dynamic wx libs
WX_UNICODE 0(default),1 Use ANSI or UNICODE wx libs
WX_DEBUG 0,1(default) Use release or debug wx libs
*WX_VERSION 25,26(default) Specify version of wx libs

View file

@ -32,9 +32,8 @@ AC_PROG_CC
AC_PROG_CXX
AC_PROG_CXXCPP
dnl we want to always have DEBUG==WX_DEBUG and UNICODE==WX_UNICODE
dnl we want to always have DEBUG==WX_DEBUG
WX_DEBUG=$DEBUG
WX_UNICODE=$UNICODE
dnl the following macros will search for the best matching wxWidgets build
dnl (taking in count the values of the --enable-debug|unicode|shared and of

View file

@ -19,9 +19,6 @@
// For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
// for all others, include the necessary headers (this file is usually all you
// need because it includes almost all "standard" wxWindows headers)

View file

@ -100,7 +100,6 @@
<wx-lib>xrc</wx-lib>
<wx-lib>html</wx-lib>
<wx-lib>media</wx-lib>
<wx-lib>adv</wx-lib>
<wx-lib>net</wx-lib>
<wx-lib>xml</wx-lib>
<wx-lib>core</wx-lib>

View file

@ -8,7 +8,7 @@ Format-specific notes:
* autoconf:
Beware that you have to use WX_CONFIG_OPTIONS and
WX_CONFIG_CHECK in your configure.in to get at least the
WX_CONFIG_CHECK in your configure.ac to get at least the
WX_CPPFLAGS, WX_CFLAGS, WX_CXXFLAGS, WX_LIBS option values defined.
To detect the WX_* option values typically you also want to use
@ -79,7 +79,7 @@ Format-specific notes:
$(DOLLAR)(shell $(WX_CONFIG) --query-toolkit)
</set>
<option name="WX_PORT">
<values>gtk1,gtk2,msw,x11,motif,osx_cocoa,osx_carbon,dfb</values>
<values>gtk2,msw,x11,osx_cocoa,osx_carbon,dfb</values>
<default-value force="1">$(WX_PORT_DEFAULT)</default-value>
<description>
Port of the wx library to build against

View file

@ -76,14 +76,6 @@
<!-- -->
<!-- The unicode define we want. By default bakefile -->
<!-- makes variables an empty string, so if unicode -->
<!-- is not defined $(UNICODE_DEFINE) would expand -->
<!-- to nothing (literally). -->
<set var="WXUNICODE_DEFINE">
<if cond="WX_UNICODE=='1'">_UNICODE</if>
</set>
<!-- The debug define we need with win32 compilers -->
<!-- (on Linux, the wx-config program is used). -->
<set var="WXDEBUG_DEFINE">
@ -219,10 +211,11 @@
</if>
<if cond="value=='stc'">
<!-- wxSTC requires also the basic scintilla library
which is built as a separate 3rd party library -->
<!-- wxSTC requires also the basic scintilla and lexilla libraries
which are built as a separate 3rd party libraries -->
<sys-lib>$(WXLIB_STC_NAME)</sys-lib>
<sys-lib>wxscintilla$(WX3RDPARTYLIBPOSTFIX)</sys-lib>
<sys-lib>wxlexilla$(WX3RDPARTYLIBPOSTFIX)</sys-lib>
</if>
<if cond="value not in WX_LIB_LIST.split()">
@ -243,13 +236,11 @@
<template id="wx-lib">
<!-- MISCELLANEOUS -->
<if cond="FORMAT=='mingw'">
<define>HAVE_W32API_H</define>
<ldflags>-mthreads</ldflags>
</if>
<define>$(substituteFromDict(WX_SHARED,{'1':'WXUSINGDLL','0':''}))</define>
<define>$(WXUNICODE_DEFINE)</define>
<define>$(WXDEBUG_DEFINE)</define>
<define>__WXMSW__</define>
@ -296,7 +287,7 @@
<sys-lib>uuid</sys-lib>
<sys-lib>rpcrt4</sys-lib>
<sys-lib>advapi32</sys-lib>
<sys-lib>wsock32</sys-lib>
<sys-lib>ws2_32</sys-lib>
</if>
<!-- Libs common to both borland and MSVC -->

View file

@ -19,9 +19,6 @@
// For compilers that support precompilation, includes "wx/wx.h".
#include "wx/wxprec.h"
#ifdef __BORLANDC__
#pragma hdrstop
#endif
// for all others, include the necessary headers (this file is usually all you
// need because it includes almost all "standard" wxWidgets headers)
@ -132,7 +129,7 @@ bool MyApp::OnInit()
// frame constructor
MyFrame::MyFrame(const wxString& title)
: wxFrame(NULL, wxID_ANY, title)
: wxFrame(nullptr, wxID_ANY, title)
{
// set the frame icon

View file

@ -53,6 +53,7 @@ EXTRALIBS = {
'html' : '$(EXTRALIBS_HTML)',
'adv' : '$(PLUGIN_ADV_EXTRALIBS)',
'media' : '$(EXTRALIBS_MEDIA)',
'stc' : '$(EXTRALIBS_STC)',
'webview' : '$(EXTRALIBS_WEBVIEW)',
}

View file

@ -1,47 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: StellarWerx32.xml
-->
<bot xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="include/unix.xml"/>
<build>
<name>Linux x86 wxGTK trunk STL</name>
<builddir>stellarwerx32_wxgtk</builddir>
<scheduler>trunk_quick</scheduler>
<steps>
<checkout/>
<configure options="--enable-stl --enable-debug"/>
<compile-all/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux x86 wxX11 stable</name>
<builddir>stellarwerx32_wxx11</builddir>
<scheduler>daily_0600</scheduler>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<configure options="--with-x11"/>
<compile-all utils="false"/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux x86 wxGTK trunk ANSI</name>
<builddir>stellarwerx32_wxgtk_ansi</builddir>
<scheduler>daily_0600</scheduler>
<steps>
<checkout/>
<configure options="--disable-unicode --enable-debug"/>
<compile-all/>
<run-tests/>
</steps>
</build>
</bot>

View file

@ -1,47 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: StellarWerx64.xml
-->
<bot xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="include/unix.xml"/>
<build>
<name>Linux x86_64 wxGTK stable</name>
<builddir>stellarwerx64_wxgtk</builddir>
<scheduler>stable_quick</scheduler>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<configure options="--enable-compat26"/>
<compile-all utils="false"/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux x86_64 wxX11 trunk</name>
<builddir>stellarwerx64_wxx11</builddir>
<scheduler>daily_0700</scheduler>
<steps>
<checkout/>
<configure options="--with-x11 --enable-debug"/>
<compile-all/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux x86_64 wxGTK stable ANSI</name>
<builddir>stellarwerx64_wxgtk_ansi</builddir>
<scheduler>daily_0700</scheduler>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<configure options="--disable-unicode"/>
<compile-all utils="false"/>
<run-tests/>
</steps>
</build>
</bot>

View file

@ -1,67 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: TBITCWXBUILDBOT.xml
-->
<bot xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="include/unix.xml"/>
<build>
<name>MinGW x86 trunk</name>
<builddir>tbitcwxbuildbot_mingw_trunk</builddir>
<scheduler>trunk_quick</scheduler>
<steps>
<checkout/>
<configure options="--host=i586-mingw32msvc
--with-cppunit-prefix=/usr/local/i586-mingw32msvc"/>
<compile-all/>
</steps>
</build>
<build>
<name>MinGW x86 stable</name>
<builddir>tbitcwxbuildbot_mingw_stable</builddir>
<scheduler>daily_0600</scheduler>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<configure options="--host=i586-mingw32msvc
--with-cppunit-prefix=/usr/local/i586-mingw32msvc"/>
<compile-all utils="false"/>
</steps>
</build>
<!--
Commented out 64-bit builds as no 64-bit compiler at the moment.
If you're re-enabling them take out the space between the hyphens of the
configure options below, e.g. take out the space from "- -host=".
<build>
<name>MinGW x86_64 trunk</name>
<builddir>tbitcwxbuildbot_mingw64_trunk</builddir>
<scheduler>trunk_quick</scheduler>
<steps>
<checkout/>
<configure options="- -host=amd64-mingw32msvc
- -with-cppunit-prefix=/usr/local/amd64-mingw32msvc"/>
<compile-all/>
</steps>
</build>
<build>
<name>MinGW x86_64 stable</name>
<builddir>tbitcwxbuildbot_mingw64_stable</builddir>
<scheduler>daily_0600</scheduler>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<configure options="- -host=amd64-mingw32msvc
- -with-cppunit-prefix=/usr/local/amd64-mingw32msvc"/>
<compile-all utils="false"/>
</steps>
</build>
-->
</bot>

View file

@ -1,119 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: brandt32.xml
-->
<bot xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="include/unix.xml"/>
<build>
<name>Linux x86 wxGTK trunk</name>
<builddir>brandt32_gtk</builddir>
<scheduler>trunk_quick</scheduler>
<steps>
<checkout/>
<configure options="--enable-compat28 --enable-debug"/>
<compile-all/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux x86 wxGTK trunk STL no compat</name>
<builddir>brandt32_gtk_stl</builddir>
<scheduler>trunk_quick</scheduler>
<steps>
<checkout/>
<configure options="--disable-compat28 --enable-stl"/>
<compile-all/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux x86 wxGTK trunk static</name>
<builddir>brandt32_gtk_trunk_static</builddir>
<scheduler>daily_0600</scheduler>
<steps>
<checkout/>
<configure options="--disable-shared --enable-debug"/>
<compile-all/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux x86 wxGTK stable static</name>
<builddir>brandt32_gtk_stable_static</builddir>
<scheduler>daily_0600</scheduler>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<configure options="--disable-shared"/>
<compile-all utils="false"/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux x86 wxDFB trunk</name>
<builddir>brandt32_dfb_trunk</builddir>
<scheduler>daily_0600</scheduler>
<steps>
<checkout/>
<configure options="--with-directfb --enable-debug"/>
<compile-all/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux x86 wxDFB stable</name>
<builddir>brandt32_dfb_stable</builddir>
<scheduler>daily_0600</scheduler>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<configure options="--with-directfb"/>
<compile-all utils="false"/>
<run-tests/>
</steps>
</build>
<!-- These last three are ravnsgaard's job's moved here while it is down -->
<build>
<name>Linux i386 wxGTK stable STL</name>
<builddir>brandt32_wxgtk_stable</builddir>
<scheduler>stable_quick</scheduler>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<configure options="--enable-stl"/>
<compile-all utils="false"/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux i386 wxGTK trunk no gui</name>
<builddir>brandt32_wxgtk_nogui</builddir>
<scheduler>daily_0600</scheduler>
<steps>
<checkout/>
<configure options="--disable-gui --enable-debug"/>
<compile-all/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux i386 wxGTK trunk no features</name>
<builddir>brandt32_wxgtk_nofeatures</builddir>
<scheduler>daily_0600</scheduler>
<steps>
<checkout/>
<configure options="--disable-all-features --enable-debug"/>
<compile-all utils="false"/>
<run-tests/>
</steps>
</build>
</bot>

View file

@ -1,35 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: brandt64.xml
-->
<bot xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="include/unix.xml"/>
<build>
<name>Linux x64 wxGTK trunk</name>
<builddir>brandt64_gtk</builddir>
<scheduler>trunk_quick</scheduler>
<steps>
<checkout/>
<configure options="--enable-compat28 --enable-debug"/>
<compile-all/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux x64 wxGTK trunk STL no compat</name>
<builddir>brandt64_gtk_stl</builddir>
<scheduler>trunk_quick</scheduler>
<steps>
<checkout/>
<configure options="--disable-compat28 --enable-stl"/>
<compile-all/>
<run-tests/>
</steps>
</build>
</bot>

View file

@ -1,133 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: common.xml
Purpose: Schedulers and locks common to all slaves.
Author: Mike Wetherell
Copyright: (c) 2007 Mike Wetherell
Licence: wxWindows licence
-->
<bot xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="include/defs.xml"/>
<!--
Quick schedulers. Builds using these are triggered after each change to
the sources on the given branch.
name: unique
branch: branch to watch
treeStableTimer: wait until the tree has stopped changing for the
given number of seconds before firing
fileNotImportant: files matching these patterns do not trigger a build
-->
<scheduler>
<name>trunk_quick</name>
<branch>trunk</branch>
<treeStableTimer>900</treeStableTimer>
<fileNotImportant>docs/* interface/*</fileNotImportant>
</scheduler>
<scheduler>
<name>release_quick</name>
<branch><RELEASE_BRANCH/></branch>
<treeStableTimer>900</treeStableTimer>
<fileNotImportant>docs/* interface/*</fileNotImportant>
</scheduler>
<scheduler>
<name>stable_quick</name>
<branch><STABLE_BRANCH/></branch>
<treeStableTimer>900</treeStableTimer>
<fileNotImportant>docs/*</fileNotImportant>
</scheduler>
<!--
Schedulers that fire once a week.
A build can use one of these to be triggered once a week, or more than
one if it should run several times a week on particular days.
-->
<nightly-schedulers name="sunday"/>
<nightly-schedulers name="monday"/>
<nightly-schedulers name="tuesday"/>
<nightly-schedulers name="wednesday"/>
<nightly-schedulers name="thursday"/>
<nightly-schedulers name="friday"/>
<nightly-schedulers name="saturday"/>
<!--
Schedulers for daily builds.
-->
<nightly-schedulers name="daily"/>
<!--
A general purpose slave lock and ones for the trunk and stable branches.
-->
<slavelock>
<name>slave</name>
</slavelock>
<slavelock>
<name>trunk</name>
</slavelock>
<slavelock>
<name><STABLE_BRANCH/></name>
</slavelock>
<slavelock>
<name><RELEASE_BRANCH/></name>
</slavelock>
<!--
Map SVN user ids to email addresses.
The email address in wx-devs.xml can be overridden by adding a line like
this after the xi:include:
<email id="JMS">jaakko.salli -at- dnainternet.net</email>
or disabled using an empty tag:
<email id="JMS"/>
-->
<emaillookup name="wx-devs">
<xi:include href="include/wx-devs.xml"/>
<!-- Overrides... -->
</emaillookup>
<!--
Notify people on the blame list when a build goes from good to bad.
-->
<mailnotifier>
<mode>problem</mode>
<lookup>wx-devs</lookup>
</mailnotifier>
<!--
Log every build to a mailing list.
-->
<mailnotifier>
<extraRecipient>wx-buildbot -at- googlegroups.com</extraRecipient>
</mailnotifier>
<!--
Track SVN changes using the wx-cvs mailing list.
The <prefix> is subtracted from the paths in the 'Modified Files:'
section, the remainder is then assumed to give the branch and filename.
-->
<svnmaildirsource>
<prefix>wxWidgets</prefix>
</svnmaildirsource>
</bot>

View file

@ -1,88 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: csleobuild.xml
Purpose:
Author:
Copyright:
Licence:
-->
<bot xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="include/csleobuild.xml"/>
<xsl:variable name="CLANGOPTIONS" select="'-Qunused-arguments -Wno-deprecated-declarations'"/>
<xsl:variable name="CLANGOPTIONS32" select="'-Qunused-arguments -Wno-parentheses-equality -Wno-self-assign -Wno-unused-function -Wno-deprecated-declarations -arch i386'"/>
<xsl:variable name="CLANGOPTIONIOSSIM" select="'-Qunused-arguments -Wno-parentheses-equality -Wno-self-assign -Wno-unused-function -Wno-deprecated-declarations -arch x86_64'"/>
<xsl:variable name="SDK106" select="'--with-macosx-version-min=10.5 --with-macosx-sdk=/Developer/SDKs/MacOSX10.6.sdk --with-cppunit-prefix=/Developer/libstdc++variants/cppunit'"/>
<xsl:variable name="SDKCURRENT107" select="'--with-macosx-version-min=10.7 --with-cppunit-prefix=/Developer/libstdc++variants/cppunit'"/>
<xsl:variable name="SDKCURRENT" select="'--with-macosx-version-min=10.9 --with-cppunit-prefix=/Developer/libc++variants/cppunit'"/>
<xsl:variable name="SDKCURRENTIOSSIM" select="'--with-macosx-version-min=7.1 --with-macosx-sdk=$(xcrun --sdk iphonesimulator --show-sdk-path)'"/>
<build>
<name>OSX 10.9 Cocoa trunk (libstdc++)</name>
<builddir>csleo_cocoa</builddir>
<scheduler>trunk_quick</scheduler>
<steps>
<checkout/>
<configure options="--with-zlib=builtin --without-libiconv --without-liblzma {$SDKCURRENT107} CXXFLAGS='{$CLANGOPTIONS}' CFLAGS='{$CLANGOPTIONS}' OBJCXXFLAGS='{$CLANGOPTIONS}'"/>
<compile-all/>
<run-tests/>
</steps>
</build>
<build>
<name>OSX 10.9 Cocoa trunk (libc++)</name>
<builddir>csleo_cocoalibc++</builddir>
<scheduler>trunk_quick</scheduler>
<steps>
<checkout/>
<configure options="{$SDKCURRENT} CXXFLAGS='{$CLANGOPTIONS}' CFLAGS='{$CLANGOPTIONS}' OBJCXXFLAGS='{$CLANGOPTIONS}'"/>
<compile-all/>
<run-tests/>
</steps>
</build>
<build>
<name>OSX 10.6 Cocoa Stable</name>
<builddir>csleo_stable_cocoa</builddir>
<scheduler>stable_quick</scheduler>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<configure options="{$SDK106} CXXFLAGS='{$CLANGOPTIONS32}' CFLAGS='{$CLANGOPTIONS32}' OBJCXXFLAGS='{$CLANGOPTIONS32}' LDFLAGS='-arch i386'"/>
<compile-all/>
<run-tests/>
</steps>
</build>
<build>
<name>OSX 10.6 Carbon Stable</name>
<builddir>csleo_stable_carbon</builddir>
<scheduler>stable_quick</scheduler>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<configure options="--with-osx_carbon {$SDK106} CXXFLAGS='{$CLANGOPTIONS32}' CFLAGS='{$CLANGOPTIONS32}' OBJCXXFLAGS='{$CLANGOPTIONS32}' LDFLAGS='-arch i386'"/>
<compile-all/>
<run-tests/>
</steps>
</build>
<build>
<name>iOS 7.1 64bit iPad sim trunk</name>
<builddir>csios64_ipadsim</builddir>
<scheduler>trunk_quick</scheduler>
<steps>
<checkout/>
<configure options="--with-osx_iphone --enable-monolithic {$SDKCURRENTIOSSIM} CXXFLAGS='{$CLANGOPTIONIOSSIM}' CFLAGS='{$CLANGOPTIONIOSSIM}' OBJCXXFLAGS='{$CLANGOPTIONIOSSIM}'"/>
<compile-all samples="false" utils="false" demos="false" contrib="false" tests="false" />
</steps>
</build>
</bot>

View file

@ -1,151 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: example.xml
Purpose: Buildbot example configuration.
Author: Mike Wetherell
Copyright: (c) 2007 Mike Wetherell
Licence: wxWindows licence
There is one xml file such as this per build slave containing a <build>
element for each build the slave runs. Each <build> corresponds to a
column in the waterfall display.
For full documentation see:
https://wiki.wxwidgets.org/Development:_Buildbot
-->
<bot xmlns:xi="http://www.w3.org/2001/XInclude">
<!--
Common declarations.
-->
<xi:include href="include/defs.xml"/>
<!--
Notes:
The elements marked 'Unique' below must be unique across all builds on
all slaves.
If a build is currently failing because of something other than a bug in
wxWidgets, e.g. out of space or missing libs, then comment it out, or
add '** Ignore **' to the beginning of the <name>, so that wxWidgets
developers know not to waste time investigating.
-->
<build>
<!--
Unique. Appears as the title in the waterfall display.
-->
<name>Linux x86_64 wxGTK Stable</name>
<!--
Unique. The name of a directory for the bulid.
-->
<builddir>example_gtk</builddir>
<!--
The name of a scheduler that will trigger this build. common.xml
currently defines:
* 'trunk_quick' and 'stable_quick'. These trigger a build after
every source change on the trunk and stable branches respectively.
* Weekly schedulers that fire once a week. There is one of these
for every half hour of the week, e.g. you have monday_0600,
monday_0630, etc..
* Daily schedulers that fire once a day. There is also one of these
for every half hour, e.g. daily_0600, daily_0630, etc..
An empty <scheduler/> element takes its value from the previous build
incremented in the following way:
* Weekly schedulers are incremented by a day, monday_0600 becomes
tuesday_0600, and at the end of the week the time is also bumped by
an hour, saturday_0600 becomes sunday_0700.
* Daily scheduler are incremented by an hour.
The <scheduler> element can be omitted, in which case the build
never runs automatically, but can still be triggered manually.
Or you can use several, e.g. you could use two weekly schedulers
that fire on different days to have a build run twice a week.
-->
<scheduler>monday_0600</scheduler>
<!--
The meaning of <sandbox> is specific to the build slave. There
should be a comment in the slave's configuration file saying if they
are allowed or required. On the testdrive it specifies the remote
machine that will run the bulid.
-->
<sandbox>debug</sandbox>
<!--
You can override the make command the compile steps will use using
this <make> element, if omitted defaults to 'make'. For Windows
builds this becomes the place to put build options as there is no
configure step.
-->
<make>nmake -f makefile.vc SHARED=1 CPPUNIT_CFLAGS=-I\cppunit\include CPPUNIT_LIBS=cppunit.lib</make>
<!--
The build steps.
-->
<steps>
<!--
Check out the sources, by default the trunk branch. Or for a
particular branch or tag, e.g.:
<checkout branch="{$STABLE_BRANCH}"/>
<checkout branch="branches/WX_2_6_BRANCH"/>
-->
<checkout/>
<!--
A <shellcommand> build step can be used anywhere you need to run
arbitrary commands not covered by the standard build steps.
<haltOnFailure/> specifies that the whole build fails if this
step fails, without it it continues with the next step anyway.
-->
<shellcommand>
<description>setting up</description>
<descriptionDone>set up</descriptionDone>
<haltOnFailure/>
<command>setup-script</command>
</shellcommand>
<!--
Configure. Options and environment variables can be added with
the 'options' attribute:
<configure options="-with-foobar CC=cc CXX=CC"/>
Omitted for Windows builds.
-->
<configure/>
<!--
Compile the wxWidgets library, subdirectories and tests.
Takes the following attributes which can all be either 'true' or
'false':
wx - build the library
samples - build the samples
utils - build the utils
demos - build the demos
contrib - build the contrib
tests - build the tests
msw - the library makefile is under build\msw
gui - if 'false' builds only a subset of the above
The attributes usually default to the right values.
-->
<compile-all/>
<!--
Run the test suites.
-->
<run-tests/>
</steps>
</build>
</bot>

View file

@ -1,38 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: include/csleobuild.xml
Purpose: Declarations for the csleobuild slave
Author: Michael Wetherel, Stefan Csomor
Copyright: (c) Stefan Csomor
Licence: wxWindows licence
-->
<bot xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="unix.xml"/>
<!--
run-tests - build step to run the test suites.
-->
<xsl:template name="run-tests">
<xsl:param name="content"/>
<test>
<defaults content="{$content}">
<description>running tests</description>
<descriptionDone>run tests</descriptionDone>
<warnOnFailure/>
</defaults>
<copy-with-defaults content="{$content}">
<command>
export DYLD_LIBRARY_PATH=../lib
cd tests &amp;&amp;
./test &amp;&amp;
open ./test_gui.app
</command>
</copy-with-defaults>
</test>
</xsl:template>
</bot>

View file

@ -1,833 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: include/defs.xml
Purpose: Common declarations for buildbot
Author: Mike Wetherell
Copyright: (c) 2007 Mike Wetherell
Licence: wxWindows licence
-->
<bot xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exsl="http://exslt.org/common"
xmlns:func="http://exslt.org/functions"
xmlns:get="local"
xsl:extension-element-prefixes="func"
xsl:version="1.0">
<!--
Constants
-->
<xsl:template name="SVN_URL">http://svn.wxwidgets.org/svn/wx/wxWidgets/</xsl:template>
<xsl:template name="STABLE_BRANCH">branches/WX_3_0_BRANCH</xsl:template>
<xsl:variable name="STABLE_BRANCH"><STABLE_BRANCH/></xsl:variable>
<xsl:template name="RELEASE_BRANCH">branches/WX_3_1_0_BRANCH</xsl:template>
<xsl:variable name="RELEASE_BRANCH"><RELEASE_BRANCH/></xsl:variable>
<xsl:template name="SNAPSHOT_URL">http://biolpc22.york.ac.uk/pub</xsl:template>
<!--
disable - comment out a section.
Usage: <disable>
e.g. <build> ... etc.
</disable>
XML comments can't contain a double hyphen which tends to be used in
configure commands, so <disable> can be used instead.
-->
<xsl:template name="disable"/>
<!--
checkout - build step for source checkout.
Usage: as <svn> with defaults for <baseURL> and <defaultBranch>
Typically just:
<checkout/>
for the trunk, or:
<checkout branch="branches/WX_3_0_BRANCH"/>
to checkout a branch.
-->
<xsl:template name="checkout">
<xsl:param name="content"/>
<xsl:param name="branch" select="'trunk'"/>
<xsl:variable name="nodes" select="exsl:node-set($content)"/>
<svn>
<xsl:if test="not($nodes/svnurl)">
<xsl:if test="not($nodes/baseURL)">
<baseURL><SVN_URL/></baseURL>
</xsl:if>
<xsl:if test="not($nodes/defaultBranch)">
<defaultBranch><xsl:value-of select="$branch"/></defaultBranch>
</xsl:if>
</xsl:if>
<xsl:copy-of select="$content"/>
</svn>
</xsl:template>
<!--
configure - add the options attribute to <configure>
Usage: <configure options="-with-foobar"/>
-->
<xsl:template name="configure">
<xsl:param name="content"/>
<xsl:param name="options"/>
<configure>
<copy-with-defaults content="{$content}">
<command>./configure <xsl:value-of select="normalize-space($options)"/></command>
</copy-with-defaults>
</configure>
</xsl:template>
<!--
make - specify the make command.
Usage: <make>nmake -f makefile.vc SHARED=1</make>
Used as a child of <build> to specify the make command used by the
<compile> elements below, if omitted 'make' is used.
-->
<xsl:template name="make"/>
<!--
compile - modifiy <compile> to default to the command given by <make>
Usage: as <compile>
The <make> element of <build> spcecifies the make command used by all
compile build steps in the build. If <make> is not given 'make' is used.
The command for a particular compile build step can be further overridden
using its <command> element:
<compile>
<command>myscript</command>
</compile>
-->
<xsl:template name="compile">
<xsl:param name="content"/>
<compile>
<copy-with-defaults content="{$content}">
<command><get name="make" default="make"/></command>
</copy-with-defaults>
</compile>
</xsl:template>
<!--
Adds build steps to compile the library and the usual subdirectories.
Usage: as <compile> with the additional attributes below.
Usually the attributes default to suitable values, so typical usage
is just <compile-all/>.
<compile-all [ gui = 'true'|'false' ]
[ msw = 'true'|'false' ]
[ wx = 'true'|'false' ]
[ samples = 'true'|'false' ]
[ utils = 'true'|'false' ]
[ demos = 'true'|'false' ]
[ contrib = 'true'|'false' ]
[ tests = 'true'|'false' ] />
gui - if 'true' then build fully the subdirectories specified,
otherwise only the wxBase subset of the directories are built.
msw - if 'true' then build the directory 'build/msw' when building the
library instead of the root.
wx - build the library itself.
samples, utils, demos, contrib, tests
- build subdirectories.
-->
<xsl:template name="compile-all">
<xsl:param name="content"/>
<xsl:param name="gui"><is-gui/></xsl:param>
<xsl:param name="msw"><is-msw/></xsl:param>
<xsl:param name="wx" select="'true'"/>
<xsl:param name="samples" select="'true'"/>
<xsl:param name="utils" select="'true'"/>
<xsl:param name="demos" select="$gui"/>
<xsl:param name="contrib"><has-contrib/></xsl:param>
<xsl:param name="tests"><has-tests/></xsl:param>
<xsl:param name="wx-dirs">
<get-dirs wx="{$wx}" gui="{$gui}" msw="{$msw}"/>
</xsl:param>
<xsl:param name="sample-dirs">
<get-dirs samples="{$samples}" gui="{$gui}" msw="{$msw}"/>
</xsl:param>
<xsl:param name="util-dirs">
<get-dirs utils="{$utils}" gui="{$gui}" msw="{$msw}"/>
</xsl:param>
<xsl:param name="demo-dirs">
<get-dirs demos="{$demos}" gui="{$gui}" msw="{$msw}"/>
</xsl:param>
<xsl:param name="contrib-dirs">
<get-dirs contrib="{$contrib}" gui="{$gui}" msw="{$msw}"/>
</xsl:param>
<xsl:param name="test-dirs">
<get-dirs tests="{$tests}" gui="{$gui}" msw="{$msw}"/>
</xsl:param>
<compile-subdirs dirs="{$wx-dirs}" halt="true">
<xsl:copy-of select="$content"/>
</compile-subdirs>
<compile-subdirs name="samples" dirs="{$sample-dirs}">
<xsl:copy-of select="$content"/>
</compile-subdirs>
<compile-subdirs name="utils" dirs="{$util-dirs}">
<xsl:copy-of select="$content"/>
</compile-subdirs>
<compile-subdirs name="demos" dirs="{$demo-dirs}">
<xsl:copy-of select="$content"/>
</compile-subdirs>
<compile-subdirs name="contrib" dirs="{$contrib-dirs}">
<xsl:copy-of select="$content"/>
</compile-subdirs>
<compile-subdirs name="tests" dirs="{$test-dirs}" halt="true">
<xsl:copy-of select="$content"/>
</compile-subdirs>
</xsl:template>
<!--
Helper for compile-all.
Returns the directories that need to be built for the various components:
wx (the library itself), samples, utils, demos, contrib and tests.
-->
<xsl:template name="get-dirs">
<xsl:param name="contents"/>
<xsl:param name="gui"/>
<xsl:param name="msw"/>
<xsl:param name="wx"/>
<xsl:param name="samples"/>
<xsl:param name="utils"/>
<xsl:param name="demos"/>
<xsl:param name="contrib"/>
<xsl:param name="tests"/>
<xsl:if test="$wx = 'true'">
<xsl:choose>
<xsl:when test="$msw = 'true'">build/msw</xsl:when>
<xsl:otherwise>.</xsl:otherwise>
</xsl:choose>
<xsl:text> </xsl:text>
</xsl:if>
<xsl:if test="$samples = 'true'">
<xsl:choose>
<xsl:when test="$gui = 'true'">samples</xsl:when>
<xsl:otherwise>samples/console</xsl:otherwise>
</xsl:choose>
<xsl:text> </xsl:text>
</xsl:if>
<xsl:if test="$utils = 'true' and $gui = 'true'">utils </xsl:if>
<xsl:if test="$demos = 'true' and $gui = 'true'">demos </xsl:if>
<xsl:if test="$contrib = 'true' and $gui = 'true'">contrib </xsl:if>
<xsl:if test="$tests = 'true'">tests</xsl:if>
</xsl:template>
<!--
compile-subdir - build step to compile a subdirectory.
Usage: as <compile> plus the following attributes,
<compile-subdir dir="foobar" [ halt="true" ]/>
Compiles the named subdirectory 'foobar'. Continues with the next build
step on failure, unless the optional attibute 'halt="true"' is given.
The make command used is as described for the compile step above.
-->
<xsl:template name="compile-subdir">
<xsl:param name="content"/>
<xsl:param name="dir"/>
<xsl:param name="halt" select="'false'"/>
<compile-subdirs name="{$dir}" dirs="{$dir}" halt="{$halt}">
<xsl:copy-of select="$content"/>
</compile-subdirs>
</xsl:template>
<!--
compile-subdirs - adds a compile build step for each directory in a list.
Usage: as <compile> plus the following attributes,
<compile-subdir dirs="foobar1 foobar2"
[ name="foobars" ]
[ sep=" " ]
[ halt="true" ]/>
Compiles the named subdirectories. Continues with the next build
step on failure, unless the optional attibute 'halt="true"' is given.
The make command used is as described for the compile step above.
The 'name' attribute can be used to give a collective name for the
subdirectories, and the 'sep' attibute can be used to specify the
separator in the 'dirs' list (defaults to space).
-->
<xsl:template name="compile-subdirs">
<xsl:param name="content"/>
<xsl:param name="name"/>
<xsl:param name="dirs"/>
<xsl:param name="sep" select="' '"/>
<xsl:param name="halt" select="'false'"/>
<xsl:if test="translate($dirs, $sep, '')">
<compile>
<defaults content="{$content}">
<name>
<xsl:value-of select="normalize-space(concat('compile ', $name))"/>
</name>
<description>
<xsl:value-of select="normalize-space(concat('compiling ', $name))"/>
</description>
<descriptionDone>
<xsl:value-of select="normalize-space(concat('compile ', $name))"/>
</descriptionDone>
<haltOnFailure>
<xsl:value-of select="$halt"/>
</haltOnFailure>
<warnOnFailure/>
</defaults>
<copy-with-defaults content="{$content}">
<command>
<compile-subdirs-cmd dirs="{$dirs}" sep="{$sep}"/>
</command>
</copy-with-defaults>
</compile>
</xsl:if>
</xsl:template>
<xsl:template name="compile-subdirs-cmd">
<xsl:param name="content"/>
<xsl:param name="dirs"/>
<xsl:param name="sep"/>
<xsl:choose>
<xsl:when test="contains($dirs, $sep)">
<xsl:variable name="before" select="substring-before($dirs, $sep)"/>
<xsl:variable name="after" select="substring-after($dirs, $sep)"/>
<xsl:call-template name="compile-subdirs-cmd">
<xsl:with-param name="dirs" select="$before"/>
<xsl:with-param name="sep" select="$sep"/>
</xsl:call-template>
<xsl:if test="$after and substring($after, 1, 1) != ' '">
<xsl:text> &amp;&amp; </xsl:text>
</xsl:if>
<xsl:call-template name="compile-subdirs-cmd">
<xsl:with-param name="dirs" select="$after"/>
<xsl:with-param name="sep" select="$sep"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="string($dirs)">
<xsl:if test="$dirs != '.'">cd <xsl:value-of select="$dirs"/> &amp;&amp; </xsl:if>
<get name="make" default="make"/>
</xsl:when>
</xsl:choose>
</xsl:template>
<!--
run-tests - build step to run the test suites.
Usage: as <test>
Typically just:
<run-tests/>
-->
<xsl:template name="run-tests">
<xsl:param name="content"/>
<xsl:param name="options" select="'-t'"/>
<xsl:param name="guioptions" select="$options"/>
<xsl:param name="msw"><is-msw/></xsl:param>
<test>
<defaults content="{$content}">
<description>running tests</description>
<descriptionDone>run tests</descriptionDone>
<warnOnFailure/>
</defaults>
<copy-with-defaults content="{$content}">
<command>
<xsl:choose>
<xsl:when test="$msw = 'true'">
<run-tests-win options="{$options}" guioptions="{$guioptions}"/>
</xsl:when>
<xsl:otherwise>
<run-tests-unix options="{$options}" guioptions="{$guioptions}"/>
</xsl:otherwise>
</xsl:choose>
</command>
</copy-with-defaults>
</test>
</xsl:template>
<xsl:template name="run-tests-win">
<xsl:param name="options"/>
<xsl:param name="guioptions"/>
<normalize-space>
cd tests &amp;&amp; runtests.bat
</normalize-space>
</xsl:template>
<xsl:template name="run-tests-unix">
<xsl:param name="options"/>
<xsl:param name="guioptions"/>
ERR=0
cd tests || exit 0
ulimit -c unlimited
try()
{
rm -f core
echo Running: "$@"
"$@" || ERR=$?
if [ -f core -a -x "`which gdb`" ]; then
echo Crashed, attempting to display backtrace:
gdb -batch -c core -ex 'set pagination off' -ex bt "$1"
fi
echo
}
try ./test <xsl:value-of select="normalize-space($options)"/>
test -x test_gui || exit $ERR
if [ -z "$DISPLAY" ]; then
echo '$DISPLAY is not set, skipping GUI tests.'
exit $ERR
fi
echo 'Checking window manager:'
WINDOW_MANAGER=$(xprop -root 32x '\n$0\n' _NET_SUPPORTING_WM_CHECK | grep ^0x)
if [ -z "$WINDOW_MANAGER" ]; then
echo 'Window manager not present, skipping GUI tests.'
exit $ERR
fi
xprop -id $WINDOW_MANAGER 8s _NET_WM_NAME
echo
try ./test_gui <xsl:value-of select="normalize-space($guioptions)"/>
exit $ERR
</xsl:template>
<!--
defaults - supply default content for an element.
Usage: <defaults content="{$content}">
<foo>foo</foo>
<bar>bar</bar>
</defaults>
Copies those child elements that do not already exist in $content.
-->
<xsl:template name="defaults">
<xsl:param name="defaults"/>
<xsl:param name="content"/>
<xsl:variable name="def-nodes" select="exsl:node-set($defaults)"/>
<xsl:variable name="cont-nodes" select="exsl:node-set($content)"/>
<xsl:for-each select="$def-nodes/*">
<xsl:if test="not($cont-nodes/*[name() = name(current())])">
<xsl:copy-of select="."/>
</xsl:if>
</xsl:for-each>
</xsl:template>
<!--
copy-with-defaults - copy elements supplying defaults for any that are
missing or empty.
Usage: <copy-with-defaults content="{$content}">
<foo>foo</foo>
<bar>bar</bar>
</copy-with-defaults>
Copies $content plus any child elements that do not exist in $content,
substituting empty elements in $content with any child elements of the
same name.
-->
<xsl:template name="copy-with-defaults">
<xsl:param name="defaults"/>
<xsl:param name="content"/>
<xsl:variable name="def-nodes" select="exsl:node-set($defaults)"/>
<xsl:variable name="cont-nodes" select="exsl:node-set($content)"/>
<xsl:for-each select="$def-nodes/*">
<xsl:if test="not($cont-nodes/*[name() = name(current())])">
<xsl:copy-of select="."/>
</xsl:if>
</xsl:for-each>
<xsl:for-each select="$cont-nodes/*">
<xsl:choose>
<xsl:when test="not(node())">
<xsl:copy-of select="$def-nodes/*[name() = name(current())]"/>
</xsl:when>
<xsl:otherwise>
<xsl:copy-of select="."/>
</xsl:otherwise>
</xsl:choose>
</xsl:for-each>
</xsl:template>
<!--
get - gets the text from a child element of the current build.
Usage: <get name="foobar" [ default="value" ]/>
Gets the text from the <foobar> element of the current build, or returns
$default if there is not such element.
-->
<xsl:template name="get">
<xsl:param name="content"/>
<xsl:param name="build" select="get:build()"/>
<xsl:param name="name"/>
<xsl:param name="default"/>
<xsl:variable name="property" select="get:property($name, $build)"/>
<strip>
<xsl:choose>
<xsl:when test="$property">
<xsl:apply-templates select="$property/node()"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$default"/>
</xsl:otherwise>
</xsl:choose>
</strip>
</xsl:template>
<!--
Accessors to get builds and their fields. XSLT code should use these
instead of traversing the input tree directly.
-->
<func:function name="get:build">
<func:result select="ancestor-or-self::build[last()]"/>
</func:function>
<func:function name="get:all-builds">
<func:result select="//build[not(ancestor::*[name() != name(/*)])]"/>
</func:function>
<func:function name="get:preceding-builds">
<func:result select="get:build()/preceding-sibling::build"/>
</func:function>
<func:function name="get:property">
<xsl:param name="name"/>
<xsl:param name="build" select="get:build()"/>
<func:result select="$build/*[name() = $name]"/>
</func:function>
<func:function name="get:step">
<xsl:param name="name"/>
<xsl:param name="build" select="get:build()"/>
<func:result select="get:property('steps', $build)/*[name() = $name]"/>
</func:function>
<!--
Returns true if this is an msw build.
-->
<xsl:template name="is-msw">
<xsl:param name="content"/>
<xsl:param name="build" select="get:build()"/>
<xsl:value-of select="not(get:step('configure', $build))"/>
</xsl:template>
<!--
Returns true if this a gui build.
-->
<xsl:template name="is-gui">
<xsl:param name="content"/>
<xsl:param name="build" select="get:build()"/>
<xsl:variable name="make"><get name="make" build="{$build}"/></xsl:variable>
<xsl:variable name="configure"><xsl:apply-templates select="get:step('configure', $build)"/></xsl:variable>
<xsl:value-of select="not(contains($make, 'USE_GUI=0') or contains($configure, '--disable-gui'))"/>
</xsl:template>
<!--
Returns true if the branch we're building has a contrib subdirectory.
-->
<xsl:template name="has-contrib">
<xsl:param name="content"/>
<xsl:param name="build" select="get:build()"/>
<xsl:variable name="checkout"><xsl:apply-templates select="get:step('checkout', $build)"/></xsl:variable>
<xsl:value-of select="contains($checkout, 'WX_2_') and not(contains($checkout, 'WX_2_9_'))"/>
</xsl:template>
<!--
Returns true if the build should build the test suite.
-->
<xsl:template name="has-tests">
<xsl:param name="content"/>
<xsl:param name="build" select="get:build()"/>
<xsl:variable name="configure"><xsl:apply-templates select="get:step('configure', $build)"/></xsl:variable>
<xsl:value-of select="get:step('run-tests', $build) or contains($configure, '--host=')"/>
</xsl:template>
<!--
strip - strips leading and trailing whitespace
Usage: <strip>
foobar
</strip>
Converts to text and strips leading and trailing whitespace.
-->
<xsl:template name="strip">
<xsl:param name="content"/>
<xsl:variable name="len" select="string-length($content)"/>
<xsl:variable name="norm" select="normalize-space($content)"/>
<xsl:variable name="normlen" select="string-length($norm)"/>
<xsl:choose>
<xsl:when test="substring($content, 1, 1) != substring($norm, 1, 1)">
<xsl:call-template name="strip">
<xsl:with-param name="content" select="substring($content, 2)"/>
</xsl:call-template>
</xsl:when>
<xsl:when test="substring($content, $len, 1) != substring($norm, $normlen, 1)">
<xsl:call-template name="strip">
<xsl:with-param name="content" select="substring($content, 1, $len - 1)"/>
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$content"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!--
normalize-space - normalises whitespace.
Usage: <normalize-space>
foobar
</normalize-space>
Converts to text, strips leading and trailing whitespace and replaces
sequences of whitespace characters by a single space.
-->
<xsl:template name="normalize-space">
<xsl:param name="content"/>
<xsl:value-of select="normalize-space($content)"/>
</xsl:template>
<!--
lower-case - converts to lower case.
Usage: <lower-case>FooBar</lower-case>
-->
<xsl:template name="lower-case">
<xsl:param name="content"/>
<xsl:variable name="lower">abcdefghijklmnopqrstuvwxyz</xsl:variable>
<xsl:variable name="upper">ABCDEFGHIJKLMNOPQRSTUVWXYZ</xsl:variable>
<xsl:value-of select="translate($content, $upper, $lower)"/>
</xsl:template>
<!--
Helpers to convert between day numbers and names.
-->
<xsl:template name="day-number">
<xsl:param name="content"/>
<xsl:param name="name"/>
<xsl:choose>
<xsl:when test="$name = 'monday'">0</xsl:when>
<xsl:when test="$name = 'tuesday'">1</xsl:when>
<xsl:when test="$name = 'wednesday'">2</xsl:when>
<xsl:when test="$name = 'thursday'">3</xsl:when>
<xsl:when test="$name = 'friday'">4</xsl:when>
<xsl:when test="$name = 'saturday'">5</xsl:when>
<xsl:when test="$name = 'sunday'">6</xsl:when>
</xsl:choose>
</xsl:template>
<xsl:template name="day-name">
<xsl:param name="content"/>
<xsl:param name="number"/>
<xsl:choose>
<xsl:when test="$number = '0'">monday</xsl:when>
<xsl:when test="$number = '1'">tuesday</xsl:when>
<xsl:when test="$number = '2'">wednesday</xsl:when>
<xsl:when test="$number = '3'">thursday</xsl:when>
<xsl:when test="$number = '4'">friday</xsl:when>
<xsl:when test="$number = '5'">saturday</xsl:when>
<xsl:when test="$number = '6'">sunday</xsl:when>
</xsl:choose>
</xsl:template>
<!--
Helpers to convert between time in the format 'hhmm' and an integer
count of the minutes since midnight.
-->
<xsl:template name="time-minutes">
<xsl:param name="content"/>
<xsl:param name="hhmm"/>
<xsl:if test="string-length($hhmm) = 4 and format-number($hhmm, '0000') = $hhmm">
<xsl:variable name="hour" select="substring($hhmm, 1, 2)"/>
<xsl:variable name="min" select="substring($hhmm, 3, 2)"/>
<xsl:if test="$hour >= 0 and $hour &lt; 24 and $min >= 0 and $min &lt; 60">
<xsl:value-of select="$hour * 60 + $min"/>
</xsl:if>
</xsl:if>
</xsl:template>
<xsl:template name="time-hhmm">
<xsl:param name="content"/>
<xsl:param name="minutes"/>
<xsl:value-of select="format-number(floor($minutes div 60) * 100 + $minutes mod 60, '0000')"/>
</xsl:template>
<!--
Create schedulers.
-->
<xsl:template name="nightly-schedulers">
<xsl:param name="content"/>
<xsl:param name="name"/>
<xsl:param name="day"><day-number name="{$name}"/></xsl:param>
<xsl:param name="hour" select="0"/>
<xsl:param name="minute" select="0"/>
<xsl:param name="step" select="30"/>
<xsl:if test="$hour &lt; 24">
<nightly>
<name>
<xsl:value-of select="concat($name, '_', format-number($hour, '00'), format-number($minute, '00'))"/>
</name>
<hour>
<xsl:value-of select="$hour"/>
</hour>
<minute>
<xsl:value-of select="$minute"/>
</minute>
<xsl:if test="$day != ''">
<dayOfWeek>
<xsl:value-of select="$day"/>
</dayOfWeek>
</xsl:if>
</nightly>
<xsl:variable name="next" select="$hour * 60 + $minute + $step"/>
<xsl:call-template name="nightly-schedulers">
<xsl:with-param name="name" select="$name"/>
<xsl:with-param name="day" select="$day"/>
<xsl:with-param name="hour" select="floor($next div 60)"/>
<xsl:with-param name="minute" select="$next mod 60"/>
<xsl:with-param name="step" select="$step"/>
</xsl:call-template>
</xsl:if>
</xsl:template>
<!--
scheduler - provide default for the <scheduler> build element.
-->
<xsl:template name="scheduler">
<xsl:param name="content"/>
<xsl:param name="previous" select="get:property('scheduler', get:preceding-builds()[last()])"/>
<xsl:param name="step" select="60"/>
<xsl:choose>
<xsl:when test="exsl:node-set($content)/node()">
<scheduler>
<xsl:copy-of select="$content"/>
</scheduler>
</xsl:when>
<xsl:otherwise>
<xsl:for-each select="$previous">
<xsl:variable name="text">
<xsl:apply-templates select="."/>
</xsl:variable>
<scheduler>
<scheduler-subst text="{$text}" step="{$step}"/>
</scheduler>
</xsl:for-each>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="scheduler-subst">
<xsl:param name="content"/>
<xsl:param name="text"/>
<xsl:param name="step"/>
<xsl:variable name="name" select="substring-before($text, '_')"/>
<xsl:variable name="hhmm" select="substring-after($text, '_')"/>
<xsl:variable name="day"><day-number name="{$name}"/></xsl:variable>
<xsl:variable name="mins"><time-minutes hhmm="{$hhmm}"/></xsl:variable>
<xsl:choose>
<xsl:when test="$mins = ''">
<xsl:value-of select="$text"/>
</xsl:when>
<xsl:when test="$day = ''">
<xsl:value-of select="$name"/>
<xsl:text>_</xsl:text>
<time-hhmm minutes="{$mins + $step}"/>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="day-mins" select="24 * 60"/>
<xsl:variable name="week-mins" select="7 * $day-mins"/>
<xsl:variable name="tmp" select="($day + 1) * $day-mins + $mins"/>
<xsl:variable name="next" select="$tmp mod $week-mins + floor($tmp div $week-mins) * $step"/>
<day-name number="{floor($next div $day-mins)}"/>
<xsl:text>_</xsl:text>
<time-hhmm minutes="{$next mod $day-mins}"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<!--
email - substitute '@' for ' -at- ' in email addresses.
-->
<xsl:template name="emailfield">
<xsl:param name="content"/>
<xsl:param name="addr"/>
<xsl:variable name="at"> -at- </xsl:variable>
<xsl:choose>
<xsl:when test="contains($addr, $at)">
<xsl:value-of select="substring-before($addr, $at)"/>
<xsl:text>@</xsl:text>
<xsl:value-of select="substring-after($addr, $at)"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$addr"/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
<xsl:template name="email">
<xsl:param name="content"/>
<xsl:param name="id"/>
<email id="{$id}"><emailfield addr="{$content}"/></email>
</xsl:template>
<xsl:template name="fromaddr">
<xsl:param name="content"/>
<fromaddr><emailfield addr="{$content}"/></fromaddr>
</xsl:template>
<xsl:template name="extraRecipient">
<xsl:param name="content"/>
<extraRecipient><emailfield addr="{$content}"/></extraRecipient>
</xsl:template>
<!--
mailnotifier - add a default value for <fromaddr> to <mailnotifier>
-->
<xsl:template name="mailnotifier">
<xsl:param name="content"/>
<mailnotifier>
<defaults content="{$content}">
<fromaddr>noreply -at- wxsite.net</fromaddr>
</defaults>
<xsl:copy-of select="$content"/>
</mailnotifier>
</xsl:template>
</bot>

View file

@ -1,40 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: include/push.xml
Purpose: Declarations for the push build slave
Author: Mike Wetherell
Copyright: (c) 2007 Mike Wetherell
Licence: wxWindows licence
-->
<bot xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="defs.xml"/>
<!--
Usage: <show log="filename" [ name="title" ]/>
A build step displayed as 'title' in the waterfall display, the output
comes from 'filename.log' in the uploaded log tarball, and the exit code
comes from 'filename.err'.
If the name attibute is omitted, it defaults to the filename.
-->
<xsl:template name="show">
<xsl:param name="content"/>
<xsl:param name="log"/>
<xsl:param name="name" select="$log"/>
<shellcommand>
<defaults content="{$content}">
<name><xsl:value-of select="$name"/></name>
<description><xsl:value-of select="$name"/></description>
<descriptionDone><xsl:value-of select="$name"/></descriptionDone>
<command><xsl:value-of select="$log"/></command>
</defaults>
<xsl:copy-of select="$content"/>
</shellcommand>
</xsl:template>
</bot>

View file

@ -1,91 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: include/unix.xml
Purpose: Declarations for unix slaves
Author: Michael Wetherell
Copyright: (c) Michael Wetherell
Licence: wxWindows licence
-->
<bot xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="defs.xml"/>
<!--
build - Override <build> to add a slave lock. This has the effect of
serialising all the builds on this machine
-->
<xsl:template name="build">
<xsl:param name="content"/>
<build>
<lock>slave</lock>
<xsl:copy-of select="$content"/>
</build>
</xsl:template>
<!--
checkout - checks out to a shared directory
Checks out to a directory '../$branch' shared between builds. Then creates
a directory 'build' for this job to build in, and 'src' which is a link to
the shared sources. This relies on all builds for the same branch being
serialised with lock so that one build doesn't update the sources while
another is building them.
Usage typically just:
<checkout/>
for the trunk, or:
<checkout branch="branches/WX_3_0_BRANCH"/>
to checkout a branch.
-->
<xsl:template name="checkout">
<xsl:param name="content"/>
<xsl:param name="branch" select="'trunk'"/>
<xsl:variable name="nodes" select="exsl:node-set($content)"/>
<svn>
<xsl:if test="not($nodes/svnurl)">
<xsl:if test="not($nodes/baseURL)">
<baseURL><SVN_URL/></baseURL>
</xsl:if>
<xsl:if test="not($nodes/defaultBranch)">
<defaultBranch><xsl:value-of select="$branch"/></defaultBranch>
</xsl:if>
</xsl:if>
<xsl:if test="not($nodes/workdir)">
<workdir>../<xsl:value-of select="$branch"/></workdir>
</xsl:if>
<xsl:copy-of select="$content"/>
</svn>
<shellcommand>
<description>creating build directory</description>
<descriptionDone>create build directory</descriptionDone>
<workdir>.</workdir>
<command>
rm -rf build &amp;&amp;
mkdir build &amp;&amp;
ln -sf ../<xsl:value-of select="$branch"/> src
</command>
</shellcommand>
</xsl:template>
<!--
configure - use '../src/configure' as the default configure command,
include disable-precomp-headers in the default options and
post process the Makefiles to use ccache.
Usage: <configure options="-with-foobar"/>
-->
<xsl:template name="configure">
<xsl:param name="content"/>
<xsl:param name="options"/>
<configure>
<copy-with-defaults content="{$content}">
<command>../src/configure --disable-precomp-headers --disable-compat28 --disable-compat26 <xsl:value-of select="normalize-space($options)"/></command>
</copy-with-defaults>
<command>find . -name Makefile | xargs perl -pi -e 's/^(?:CC|CXX) = /$&amp;ccache /'</command>
</configure>
</xsl:template>
</bot>

View file

@ -1,48 +0,0 @@
<?xml version="1.0"?>
<emaillookup>
<email id="ABX">abx -at- abx.art.pl</email>
<email id="AG">andrea.gavana -at- gmail.com</email>
<email id="AMB">alex -at- alex.org.uk</email>
<email id="AVV">cafedetal -at- gmail.com</email>
<email id="BBE">bartosz.bekier -at- gmail.com</email>
<email id="BIW">bwilliams -at- kirix.com</email>
<email id="BP">bryan -at- ibaku.net</email>
<email id="BY">techrazy.yang -at- gmail.com</email>
<email id="CAD">loafier -at- gmail.com</email>
<email id="CE">biol75 -at- york.ac.uk</email>
<email id="CHB">Chris.Barker -at- noaa.gov</email>
<email id="CJP">admin -at- editra.org</email>
<email id="DE">dfe -at- tgwbd.org</email>
<email id="DJL">daniel.lauk -at- gmail.com</email>
<email id="DMS">diaasami -at- gmail.com</email>
<email id="DS">d.schoolwerth -at- xs4all.nl</email>
<email id="FM">f18m_cpp217828 -at- yahoo.it</email>
<email id="FT">frank.tobia -at- gmail.com</email>
<email id="GD">gilles_depeyrot -at- mac.com</email>
<email id="JG">jrgadd2 -at- cs.latrobe.edu.au</email>
<email id="JJ">joukj -at- hrem.nano.tudelft.nl</email>
<email id="JMS">jaakko.salli -at- dnainternet.net</email>
<email id="JS">julian -at- anthemion.co.uk</email>
<email id="JW">hc.john -at- gmail.com</email>
<email id="KH">hockkn -at- yahoo.com</email>
<email id="KLB">KendallB -at- scitechsoft.com</email>
<email id="KO">kevino -at- theolliviers.com</email>
<email id="MBN">mbarbon -at- cpan.org</email>
<email id="MJM">mmacleod -at- webmail.co.za</email>
<email id="MK">nitro -at- dr-code.org</email>
<email id="MMK">MMK -at- Thunder-Power.com</email>
<email id="MR">leio -at- gentoo.org</email>
<email id="MW">mike.wetherell -at- ntlworld.com</email>
<email id="OLS">oliver.schoenborn -at- gmail.com</email>
<email id="PC">paulcor -at- bullseye.com</email>
<email id="PJC">corsix -at- corsix.org</email>
<email id="PMO">Peter_Most -at- gmx.de</email>
<email id="RD">robin -at- alldunn.com</email>
<email id="RN">wxprojects -at- comcast.net</email>
<email id="ROL">rolinsky -at- femagsoft.com</email>
<email id="RR">robert -at- roebling.de</email>
<email id="SC">csomor -at- advancedconcepts.ch</email>
<email id="SN">Stefan.Neis -at- t-online.de</email>
<email id="VS">vslavik -at- fastmail.fm</email>
<email id="VZ">vadim -at- wxwidgets.org</email>
</emaillookup>

View file

@ -1,79 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: include/xp_vc.xml
Purpose: Declarations for the xp_vc slave
Author: Michael Wetherell
Copyright: (c) 2008 Michael Wetherell
Licence: wxWindows licence
-->
<bot xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="defs.xml"/>
<!--
build - Override <build> to add a slave lock. This has the effect of
serialising builds for the same branch on this machine.
-->
<xsl:template name="build">
<xsl:param name="content"/>
<xsl:variable name="checkout">
<xsl:apply-templates select="get:step('checkout')"/>
</xsl:variable>
<build>
<lock>
<xsl:value-of select="exsl:node-set($checkout)/svn/defaultBranch"/>
</lock>
<xsl:copy-of select="$content"/>
</build>
</xsl:template>
<!--
checkout - checks out to a shared directory
Checks out to a directory '../$branch' shared between builds. Then exports
it to a clean 'build' directory for the job to build in. This relies on
builds for the same branch being serialised with a lock so that one build
doesn't update the shared source while another is exporting them.
Usage typically just:
<checkout/>
for the trunk, or:
<checkout branch="branches/WX_3_0_BRANCH"/>
to checkout a branch.
-->
<xsl:template name="checkout">
<xsl:param name="content"/>
<xsl:param name="branch" select="'trunk'"/>
<xsl:variable name="nodes" select="exsl:node-set($content)"/>
<svn>
<xsl:if test="not($nodes/svnurl)">
<xsl:if test="not($nodes/baseURL)">
<baseURL><SVN_URL/></baseURL>
</xsl:if>
<xsl:if test="not($nodes/defaultBranch)">
<defaultBranch><xsl:value-of select="$branch"/></defaultBranch>
</xsl:if>
</xsl:if>
<xsl:if test="not($nodes/workdir)">
<workdir>../<xsl:value-of select="$branch"/></workdir>
</xsl:if>
<xsl:copy-of select="$content"/>
</svn>
<shellcommand>
<description>creating build directory</description>
<descriptionDone>create build directory</descriptionDone>
<workdir>.</workdir>
<command>
<normalize-space>
(if exist build rmdir /s/q build) &amp;&amp;
svn export --native-eol CRLF
..\<xsl:value-of select="$branch"/> build
</normalize-space>
</command>
</shellcommand>
</xsl:template>
</bot>

View file

@ -1,85 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: push.xml
Purpose: Configuration for push builds
Author: Mike Wetherell
Copyright: (c) 2007 Mike Wetherell
Licence: wxWindows licence
This allows the logs from builds done elsewhere to be included in the
buildbot results, see:
https://wiki.wxwidgets.org/Development:_Buildbot#Sending_in_Logs_from_Builds_Done_Elsewhere
-->
<bot xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="include/push.xml"/>
<build>
<name>Solaris HEAD GTK1</name>
<builddir>psh_solaris_hd_gtk1</builddir>
<steps>
<extractlogs/>
<show log="configure"/>
<show log="compile"/>
</steps>
</build>
<build>
<name>Solaris HEAD X11 with-stl</name>
<builddir>psh_solaris_hd_x11</builddir>
<steps>
<extractlogs/>
<show log="configure"/>
<show log="compile"/>
</steps>
</build>
<build>
<name>Solaris Stable Motif</name>
<builddir>psh_solaris_st_motif</builddir>
<steps>
<extractlogs/>
<show log="configure"/>
<show log="compile"/>
</steps>
</build>
<build>
<name>Solaris Stable GTK2 Unicode</name>
<builddir>psh_solaris_st_gtk2u</builddir>
<steps>
<extractlogs/>
<show log="configure"/>
<show log="compile"/>
</steps>
</build>
<build>
<name>MingW-W64 cross_wxMSW Trunk</name>
<builddir>psh_mingw64_trunk</builddir>
<steps>
<extractlogs/>
<show log="configure"/>
<show log="compile"/>
</steps>
</build>
<build>
<name>MingW-W64 cross_wxMSW Stable</name>
<builddir>psh_mingw64_stable</builddir>
<steps>
<extractlogs/>
<show log="configure"/>
<show log="compile"/>
</steps>
</build>
</bot>

View file

@ -1,48 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: ravnsgaard.xml
Licence: wxWindows licence
-->
<bot xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="include/unix.xml"/>
<!-- Moved to brandt32 while ranvsgaard is down -->
<disable>
<build>
<name>Linux i386 wxGTK stable STL</name>
<builddir>ravnsgaard_wxgtk_stable</builddir>
<scheduler>stable_quick</scheduler>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<configure options="--enable-stl"/>
<compile-all utils="false"/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux i386 wxGTK trunk no gui</name>
<builddir>ravnsgaard_wxgtk_nogui</builddir>
<scheduler>daily_0600</scheduler>
<steps>
<checkout/>
<configure options="--disable-gui --enable-debug"/>
<compile-all/>
<run-tests/>
</steps>
</build>
<build>
<name>Linux i386 wxGTK trunk no features</name>
<builddir>ravnsgaard_wxgtk_nofeatures</builddir>
<scheduler>daily_0600</scheduler>
<steps>
<checkout/>
<configure options="--disable-all-features --enable-debug"/>
<compile-all utils="false"/>
<run-tests/>
</steps>
</build>
</disable>
</bot>

View file

@ -1,83 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: xp_vc.xml
Purpose: Buildbot xp_vc configuration.
Author: Laurent Humbertclaude
Copyright: (c) 2008 Laurent Humbertclaude
Licence: wxWindows licence
-->
<bot xmlns:xi="http://www.w3.org/2001/XInclude">
<xi:include href="include/xp_vc.xml"/>
<build>
<name>XPSP2 VC9 wxMSW trunk release</name>
<builddir>XPSP2_VC9_wxMSW_trunk_release</builddir>
<scheduler>trunk_quick</scheduler>
<sandbox>VC9</sandbox>
<make>nmake /nologo /f makefile.vc BUILD=release SHARED=1 CPPUNIT_CFLAGS=-Ik:/buildbot/VC9libs/cppunit-1.12.1/include CPPUNIT_LIBS=k:/buildbot/VC9libs/cppunit-1.12.1/lib/cppunit.lib</make>
<steps>
<checkout/>
<compile-all tests="true"/>
<run-tests/>
</steps>
</build>
<build>
<name>XPSP2 VC9 wxMSW stable release</name>
<builddir>XPSP2_VC9_wxMSW_stable_release</builddir>
<scheduler>stable_quick</scheduler>
<sandbox>VC9</sandbox>
<make>nmake /nologo /f makefile.vc BUILD=release SHARED=1 CPPUNIT_CFLAGS=-Ik:/buildbot/VC9libs/cppunit-1.12.1/include CPPUNIT_LIBS=k:/buildbot/VC9libs/cppunit-1.12.1/lib/cppunit.lib</make>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<compile-all contrib="false" tests="true"/>
<run-tests/>
</steps>
</build>
<build>
<name>XPSP2 VC9 wxMSW trunk debug</name>
<builddir>XPSP2_VC9_wxMSW_trunk_debug</builddir>
<scheduler>daily_0400</scheduler>
<sandbox>VC9</sandbox>
<make>nmake /nologo /f makefile.vc BUILD=debug SHARED=1 CPPUNIT_CFLAGS=-Ik:/buildbot/VC9libs/cppunit-1.12.1/include CPPUNIT_LIBS=k:/buildbot/VC9libs/cppunit-1.12.1/lib/cppunitd.lib</make>
<steps>
<checkout/>
<compile-all tests="true"/>
<run-tests/>
</steps>
</build>
<build>
<name>XPSP2 VC9 wxMSW stable debug</name>
<builddir>XPSP2_VC9_wxMSW_stable_debug</builddir>
<scheduler>daily_0500</scheduler>
<sandbox>VC9</sandbox>
<make>nmake /nologo /f makefile.vc BUILD=debug SHARED=1 CPPUNIT_CFLAGS=-Ik:/buildbot/VC9libs/cppunit-1.12.1/include CPPUNIT_LIBS=k:/buildbot/VC9libs/cppunit-1.12.1/lib/cppunitd.lib</make>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<compile-all contrib="false" tests="true"/>
<run-tests/>
</steps>
</build>
<build>
<name>XPSP2 VC6 wxMSW stable release</name>
<builddir>XPSP2_VC6_wxMSW_stable_release</builddir>
<scheduler>stable_quick</scheduler>
<sandbox>VC6</sandbox>
<make>nmake /nologo /f makefile.vc BUILD=release SHARED=1 CPPUNIT_CFLAGS=-Ik:/buildbot/VC6libs/cppunit-1.12.1/include CPPUNIT_LIBS=k:/buildbot/VC6libs/cppunit-1.12.1/lib/cppunit.lib</make>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<compile-all contrib="false" tests="true"/>
<run-tests/>
</steps>
</build>
<build>
<name>XPSP2 VC6 wxMSW stable debug</name>
<builddir>XPSP2_VC6_wxMSW_stable_debug</builddir>
<scheduler>daily_0700</scheduler>
<sandbox>VC6</sandbox>
<make>nmake /nologo /f makefile.vc BUILD=debug SHARED=1 CPPUNIT_CFLAGS=-Ik:/buildbot/VC6libs/cppunit-1.12.1/include CPPUNIT_LIBS=k:/buildbot/VC6libs/cppunit-1.12.1/lib/cppunitd.lib</make>
<steps>
<checkout branch="{$STABLE_BRANCH}"/>
<compile-all contrib="false" tests="true"/>
<run-tests/>
</steps>
</build>
</bot>

View file

@ -1,15 +0,0 @@
<?xml version="1.0"?>
<!--
Name: bot.xsd
Purpose: Used by check.sh for offline checking of the configuration.
Author: Mike Wetherell
Copyright: (c) 2007 Mike Wetherell
Licence: wxWindows licence
-->
<schema xmlns="http://www.w3.org/2001/XMLSchema">
<element name="bot">
<!-- todo -->
</element>
</schema>

View file

@ -1,182 +0,0 @@
#!/bin/sh
#############################################################################
# Name: check.sh
# Purpose: Offline checker for the buildbot configuration files
# Author: Mike Wetherell
# Copyright: (c) 2007 Mike Wetherell
# Licence: wxWindows licence
#############################################################################
usage() {
echo "Usage: $0 [options] FILE..."
echo "Offline checker for the buildbot configuration files"
echo
echo "Options:"
echo " -g generate xslt"
echo " -h show help"
echo " -l N output only line N"
echo " -p preprocess"
echo " -v validate"
exit 0
}
badopt() {
echo "try '$0 -h' for more information" >&2
exit 1
}
progcheck() {
prog="$1"
$prog --version >/dev/null 2>&1 || {
echo "$0: requires $prog, not found" >&2
exit 1
}
}
GENERATE=1
PREPROCESS=2
VALIDATE=3
MODE=$VALIDATE
FILTER=cat
while getopts ghl:pv opt; do
case "$opt" in
\?) badopt ;;
g) MODE=$GENERATE ;;
h) usage ;;
l) FILTER="sed -ne ${OPTARG}p" ;;
p) MODE=$PREPROCESS ;;
v) MODE=$VALIDATE ;;
esac
done
if [ $OPTIND -gt 1 ]; then
shift `expr $OPTIND - 1`
fi
if [ $# -eq 0 ]; then
usage
fi
XSLTPROC=xsltproc
XMLLINT=xmllint
progcheck $XSLTPROC
progcheck $XMLLINT
DIR="`dirname $0`"
WORKDIR="${TMPDIR:-/tmp}/wx.$$"
mkdir "$WORKDIR" || exit
trap 'rm -rf "$WORKDIR"' EXIT
WORKPAT=`echo "$WORKDIR" | sed 's|[^A-Za-z0-9]/|.|g'`
XSLT="$WORKDIR/XSLT"
PREP="$WORKDIR/PREP"
STDERR="$WORKDIR/STDERR"
ERR=0
# Filter to show lines of genertated XSLT when they are mentioned.
showxslt() {
awk '{
print;
if (sub(/.*generated XSLT line */, "") && sub(/[^0-9].*/, ""))
{
system("sed -ne "$0"p '$XSLT'");
}
}'
}
# Test it works as old version of awk don't have sub or system functions.
if showxslt </dev/null 2>/dev/null; then
SHOWXSLT=showxslt
else
SHOWXSLT=cat
fi
# Change the names of the temporary files in an error message to something
# to something more informative
errout()
{
NAME="$1"
if [ -s "$STDERR" ]; then
sed "s|file ${WORKPAT}|${WORKPAT}|g;\
s|${WORKPAT}/XSLT|generated XSLT|g;\
s|${WORKPAT}/PREP|$NAME (preprocessed)|g" "$STDERR" | $SHOWXSLT
fi
}
output()
{
$FILTER "$1"
}
generate()
{
INPUT="$1"
if $XSLTPROC --xinclude -o "$XSLT" $DIR/embedded.xsl "$INPUT" 2>"$STDERR" &&
test \! -s "$STDERR"
then
if [ $MODE -eq $GENERATE ]; then
output "$XSLT"
fi
else
return 1
fi
}
preprocess()
{
INPUT="$1"
if [ $MODE -lt $PREPROCESS ]; then
return 0
fi
if $XSLTPROC --xinclude -o "$PREP" "$XSLT" "$INPUT" 2>"$STDERR" &&
test \! -s "$STDERR"
then
if [ $MODE -eq $PREPROCESS ]; then
output "$PREP"
fi
else
return 1
fi
}
validate()
{
NAME="$1"
if [ $MODE -lt $VALIDATE ]; then
return 0
fi
if $XMLLINT --noout --schema $DIR/bot.xsd "$PREP" 2>"$STDERR"
then
errout "$NAME"
else
return 1
fi
}
while [ $# -gt 0 ]; do
INPUT="$1"
NAME="`echo \"$INPUT\" | sed 's/[|\]/\\\&/g'`"
{
generate "$INPUT" &&
preprocess "$INPUT" &&
validate "$NAME"
} || {
errout "$NAME" >&2
ERR=1
}
rm -f "$XSLT" "$PREP" "$STDERR"
shift
done
exit $ERR

View file

@ -1,39 +0,0 @@
<?xml version="1.0"?>
<!--
Name: email.xsl
Purpose: Create email address lookup.
Author: Mike Wetherell
Copyright: (c) 2007 Mike Wetherell
Licence: wxWindows licence
Usage: xsltproc -html tools/email.xsl http://svn.wxwidgets.org/users.cgi \
> config/include/wx-devs.xml
-->
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:param name="at"> -at- </xsl:param>
<xsl:output indent="yes"/>
<xsl:template match="/">
<emaillookup>
<xsl:apply-templates select="//table/tr">
<xsl:sort select="normalize-space(td[1])"/>
</xsl:apply-templates>
</emaillookup>
</xsl:template>
<xsl:template match="tr">
<xsl:variable name="id" select="normalize-space(td[1])"/>
<xsl:variable name="email" select="normalize-space(td[3])"/>
<xsl:if test="$id and not(contains($id, ' ')) and contains($email, $at)">
<email id="{$id}">
<xsl:value-of select="$email"/>
</email>
</xsl:if>
</xsl:template>
</xsl:transform>

View file

@ -1,349 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Name: embedded.xsl
Purpose: Used by check.sh for offline checking of the configuration.
Author: Mike Wetherell
Copyright: (c) 2007 Mike Wetherell
Licence: wxWindows licence
-->
<transform xmlns="http://www.w3.org/1999/XSL/Transform"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:XSL="XSL"
version="1.0">
<namespace-alias stylesheet-prefix="XSL" result-prefix="xsl"/>
<output indent="yes"/>
<variable
name="root"
select="//*[not(ancestor-or-self::*[name() != name(/*)])]"/>
<variable
name="includes"
select="$root[position() > 1]"/>
<variable
xmlns:func="http://exslt.org/functions"
name="top-level"
select="$root/xsl:import |
$root/xsl:include |
$root/xsl:attribute-set |
$root/xsl:character-map |
$root/xsl:decimal-format |
$root/xsl:function |
$root/xsl:import-schema |
$root/xsl:key |
$root/xsl:namespace-alias |
$root/xsl:output |
$root/xsl:param |
$root/xsl:preserve-space |
$root/xsl:strip-space |
$root/xsl:template |
$root/xsl:variable |
$root/func:function"/>
<template match="/">
<XSL:transform>
<copy-of select="$root/namespace::*"/>
<for-each select="$root/@xsl:*">
<attribute name="{local-name()}">
<value-of select="."/>
</attribute>
</for-each>
<for-each select="$top-level">
<if test="not(../ancestor::*/*[name() = name(current()) and @name = current()/@name])">
<apply-templates mode="copy-xsl" select="."/>
</if>
</for-each>
<apply-templates select="*"/>
</XSL:transform>
</template>
<template match="*">
<variable name="pattern">
<call-template name="coord-pattern"/>
</variable>
<variable name="is-xsl">
<call-template name="is-xsl"/>
</variable>
<XSL:template match="*[generate-id() = generate-id(document('', /){$pattern})]">
<copy-of select="namespace::*"/>
<choose>
<when test="$root/xsl:template[@name = name(current())]">
<call-template name="expand">
<with-param name="inside-xsl" select="$is-xsl = 'true'"/>
</call-template>
</when>
<when test="count($includes | .) = count($includes)">
<if test="node()">
<XSL:apply-templates select="node()"/>
</if>
</when>
<when test="count($top-level | .) != count($top-level)">
<call-template name="create-context"/>
</when>
</choose>
</XSL:template>
<if test="$is-xsl != 'true'">
<apply-templates select="node()"/>
</if>
</template>
<template match="text()"/>
<template match="@*">
<copy/>
</template>
<template mode="copy-xsl" match="*[//xsl:template[not(ancestor::*[name() != name(/*)])]/@name = name()]">
<choose>
<when test="ancestor::xsl:template[@name = name(current())]">
<copy>
<call-template name="copy-xsl-children"/>
</copy>
</when>
<otherwise>
<call-template name="expand">
<with-param name="inside-xsl" select="true()"/>
</call-template>
</otherwise>
</choose>
</template>
<template mode="copy-xsl" match="@*|node()">
<copy>
<call-template name="copy-xsl-children"/>
</copy>
</template>
<template name="copy-xsl-children">
<copy-of select="namespace::*"/>
<apply-templates mode="copy-xsl" select="@*|node()"/>
</template>
<template name="coord-pattern">
<param name="element" select="."/>
<for-each select="$element/ancestor-or-self::*">
<text>/*[</text>
<value-of select="count(preceding-sibling::*) + 1"/>
<text>]</text>
</for-each>
</template>
<template name="is-xsl">
<param name="element" select="."/>
<choose>
<when test="$element/self::xsl:*">
<value-of select="true()"/>
</when>
<otherwise>
<variable name="namespace" select="namespace-uri($element)"/>
<variable name="extension-namespaces">
<for-each select="$element/ancestor-or-self::*/@xsl:extension-element-prefixes">
<variable name="prefixes"
select="concat(' ', normalize-space(.), ' ')"/>
<variable name="namespaces"
select="../namespace::*[contains($prefixes, concat(' ', name(), ' ')) or
(name() = '' and contains($prefixes, ' #default '))]"/>
<value-of select="$namespaces[. = $namespace]"/>
</for-each>
</variable>
<value-of select="$extension-namespaces != ''"/>
</otherwise>
</choose>
</template>
<template name="expand">
<param name="inside-xsl"/>
<variable name="params" select="$root/xsl:template[@name = name(current())]/xsl:param"/>
<XSL:call-template name="{name()}">
<if test="node() and $params">
<XSL:with-param name="{$params[1]/@name}">
<choose>
<when test="$inside-xsl">
<apply-templates mode="copy-xsl" select="node()"/>
</when>
<otherwise>
<variable name="pattern">
<call-template name="coord-pattern"/>
</variable>
<XSL:apply-templates select="{$pattern}/node()"/>
</otherwise>
</choose>
</XSL:with-param>
</if>
<for-each select="@*">
<variable name="len" select="string-length(.)"/>
<choose>
<when test="substring(., 1, 1) = '{' and
substring(., $len, 1) = '}'">
<XSL:with-param name="{name()}"
select="{substring(., 2, $len - 2)}"/>
</when>
<otherwise>
<XSL:with-param name="{name()}">
<call-template name="avt"/>
</XSL:with-param>
</otherwise>
</choose>
</for-each>
</XSL:call-template>
</template>
<template name="create-context">
<param name="elements" select="ancestor-or-self::*
[last() - 1 > position()]
/preceding-sibling::xsl:variable | ."/>
<variable name="pattern">
<call-template name="coord-pattern">
<with-param name="element" select="$elements[1]"/>
</call-template>
</variable>
<variable name="parent-pattern">
<call-template name="coord-pattern">
<with-param name="element" select="$elements[1]/.."/>
</call-template>
</variable>
<XSL:for-each select="{$parent-pattern}/*">
<XSL:if test="count({$pattern} | .) = 1">
<variable name="is-xsl">
<call-template name="is-xsl">
<with-param name="element" select="$elements[1]"/>
</call-template>
</variable>
<choose>
<when test="$is-xsl = 'true'">
<apply-templates mode="copy-xsl" select="$elements[1]"/>
<if test="$elements[2]">
<call-template name="create-context">
<with-param name="elements" select="$elements[position() > 1]"/>
</call-template>
</if>
</when>
<otherwise>
<copy>
<apply-templates select="@*"/>
<if test="node()">
<XSL:apply-templates select="node()"/>
</if>
</copy>
</otherwise>
</choose>
</XSL:if>
</XSL:for-each>
</template>
<template name="before">
<param name="string"/>
<param name="target"/>
<variable name="apos">'</variable>
<variable name="quot">"</variable>
<variable name="posapos" select="string-length(substring-before(
concat($string, $apos), $apos))"/>
<variable name="posquot" select="string-length(substring-before(
concat($string, $quot), $quot))"/>
<variable name="postarg" select="string-length(substring-before(
concat($string, $target), $target))"/>
<choose>
<when test="$posapos = $postarg and $posquot = $postarg">
<value-of select="$string"/>
</when>
<when test="$posapos > $postarg and $posquot > $postarg">
<value-of select="substring($string, 1, $postarg)"/>
</when>
<otherwise>
<variable name="delim">
<choose>
<when test="$posquot > $posapos">'</when>
<otherwise>"</otherwise>
</choose>
</variable>
<value-of select="substring-before($string, $delim)"/>
<value-of select="$delim"/>
<variable name="mid" select="substring-after($string, $delim)"/>
<choose>
<when test="contains($mid, $delim)">
<value-of select="substring-before($mid, $delim)"/>
<value-of select="$delim"/>
<call-template name="before">
<with-param name="string"
select="substring-after($mid, $delim)"/>
<with-param name="target"
select="$target"/>
</call-template>
</when>
<otherwise>
<value-of select="$mid"/>
</otherwise>
</choose>
</otherwise>
</choose>
</template>
<template name="avt">
<param name="string" select="."/>
<variable name="before1" select="substring-before(concat($string, '{'), '{')"/>
<variable name="len1" select="string-length($before1)"/>
<variable name="before2" select="substring-before(concat($string, '}}'), '}}')"/>
<variable name="len2" select="string-length($before2)"/>
<choose>
<when test="$before1 = $string and $before2 = $string">
<value-of select="$string"/>
</when>
<when test="$len2 &lt; $len1">
<value-of select="$before2"/>
<text>}</text>
<call-template name="avt">
<with-param name="string" select="substring($string, $len2 + 3)"/>
</call-template>
</when>
<when test="substring($string, $len1 + 2, 1) = '{'">
<value-of select="$before1"/>
<text>{</text>
<call-template name="avt">
<with-param name="string" select="substring($string, $len1 + 3)"/>
</call-template>
</when>
<otherwise>
<variable name="mid" select="substring($string, $len1 + 2)"/>
<variable name="expr">
<call-template name="before">
<with-param name="string" select="$mid"/>
<with-param name="target">}</with-param>
</call-template>
</variable>
<value-of select="$before1"/>
<XSL:copy-of select="{$expr}"/>
<call-template name="avt">
<with-param name="string" select="substring($mid, string-length($expr) + 2)"/>
</call-template>
</otherwise>
</choose>
</template>
</transform>

View file

@ -28,9 +28,9 @@ Files
* Every function should contain a short description of it's parameters as
a comment before the function/macro
* install.cmake
* Handles defintions for the `install` and `uninstall` target
* Handles definitions for the `install` and `uninstall` target
* init.cmake
* Intializes various variables used during the build process and for
* Initializes various variables used during the build process and for
generation of setup.h and configuration files
* main.cmake
* Includes all other cmake files
@ -60,7 +60,7 @@ _.cmake_ files.
* Defines build targets for demos via `wx_add_demo()`
* lib
* Defines build targets for all libraries and bundle third party libraries
* Each library is contained in a seperate directory and uses
* Each library is contained in a separate directory and uses
`wx_add_library()` to define the library target
* Bundled third party library without upstream CMake support are defined in
a _.cmake_ file using `wx_add_builtin_library()` to define static library
@ -70,8 +70,8 @@ _.cmake_ files.
* Includes the [cotire module][4] used to for precompiled header generation
* samples
* Defines build targets for all samples via `wx_add_sample()`
* Defintions for trivial samples are included in _CMakeLists.txt_ more
complex samples might have a seperate .cmake file
* Definitions for trivial samples are included in _CMakeLists.txt_ more
complex samples might have a separate .cmake file
* tests
* Defines build targets for all tests
* utils

View file

@ -0,0 +1,12 @@
#############################################################################
# Name: build/cmake/benchmarks/CMakeLists.txt
# Purpose: CMake file for benchmarks
# Author: Maarten Bent
# Created: 2021-02-07
# Copyright: (c) 2021 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
add_subdirectory(bench)
add_subdirectory(bench_graphics)
add_subdirectory(bench_gui)

View file

@ -0,0 +1,34 @@
#############################################################################
# Name: build/cmake/benchmarks/bench/CMakeLists.txt
# Purpose: CMake file for benchmarks
# Author: Maarten Bent
# Created: 2021-02-07
# Copyright: (c) 2021 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
set(BENCH_SRC
bench.cpp
bench.h
datetime.cpp
htmlparser/htmlpars.cpp
htmlparser/htmlpars.h
htmlparser/htmltag.cpp
htmlparser/htmltag.h
ipcclient.cpp
log.cpp
mbconv.cpp
printfbench.cpp
strings.cpp
tls.cpp
)
set(BENCH_DATA
htmltest.html
)
wx_add_benchmark(bench CONSOLE ${BENCH_SRC} DATA ${BENCH_DATA})
if(wxUSE_SOCKETS)
wx_exe_link_libraries(bench wxnet)
endif()

View file

@ -0,0 +1,18 @@
#############################################################################
# Name: build/cmake/benchmarks/bench_graphics/CMakeLists.txt
# Purpose: CMake file for benchmarks
# Author: Maarten Bent
# Created: 2021-02-07
# Copyright: (c) 2021 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
set(BENCH_GRAPGICS_SRC
graphics.cpp
)
wx_add_benchmark(bench_graphics CONSOLE_GUI ${BENCH_GRAPGICS_SRC})
if(wxUSE_OPENGL)
wx_exe_link_libraries(bench_graphics wxgl)
endif()

View file

@ -0,0 +1,24 @@
#############################################################################
# Name: build/cmake/benchmarks/bench_gui/CMakeLists.txt
# Purpose: CMake file for benchmarks
# Author: Maarten Bent
# Created: 2021-02-07
# Copyright: (c) 2021 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
set(BENCH_GUI_SRC
bench.cpp
bench.h
display.cpp
image.cpp
)
set(IMAGE_DATA
../../samples/image/horse.bmp:horse.bmp
../../samples/image/horse.jpg:horse.jpg
../../samples/image/horse.png:horse.png
../../samples/image/horse.tif:horse.tif
)
wx_add_benchmark(bench_gui CONSOLE_GUI ${BENCH_GUI_SRC} DATA ${IMAGE_DATA})

39
build/cmake/build.cfg.in Normal file
View file

@ -0,0 +1,39 @@
WXVER_MAJOR=@wxMAJOR_VERSION@
WXVER_MINOR=@wxMINOR_VERSION@
WXVER_RELEASE=@wxRELEASE_NUMBER@
BUILD=@wxBUILD@
MONOLITHIC=@wxBUILD_MONOLITHIC_bf@
SHARED=@wxBUILD_SHARED_bf@
UNICODE=1
TOOLKIT=@wxBUILD_TOOLKIT_UPPER@
TOOLKIT_VERSION=@wxTOOLKIT_VERSION@
WXUNIV=@wxUNIV@
CFG=@wxCFG@
VENDOR=@wxBUILD_VENDOR@
OFFICIAL_BUILD=@wxOFFICIAL_BUILD@
DEBUG_FLAG=@wxDEBUG_FLAG@
DEBUG_INFO=@wxDEBUG_INFO@
RUNTIME_LIBS=@wxRUNTIME_LIBS@
USE_EXCEPTIONS=@wxUSE_EXCEPTIONS_bf@
USE_RTTI=@wxUSE_RTTI@
USE_THREADS=@wxUSE_THREADS_bf@
USE_AUI=@wxUSE_AUI_bf@
USE_GUI=@wxUSE_GUI_bf@
USE_HTML=@wxUSE_HTML_bf@
USE_MEDIA=@wxUSE_MEDIA_bf@
USE_OPENGL=@wxUSE_OPENGL_bf@
USE_QA=@wxUSE_DEBUGREPORT_bf@
USE_PROPGRID=@wxUSE_PROPGRID_bf@
USE_RIBBON=@wxUSE_RIBBON_bf@
USE_RICHTEXT=@wxUSE_RICHTEXT_bf@
USE_STC=@wxUSE_STC_bf@
USE_WEBVIEW=@wxUSE_WEBVIEW_bf@
USE_XRC=@wxUSE_XRC_bf@
COMPILER=@wxCOMPILER_PREFIX@
COMPILER_VERSION=@wxCOMPILER_VERSION@
CC=@wxCC@
CXX=@wxCXX@
CFLAGS=@wxCFLAGS@
CPPFLAGS=@wxCPPFLAGS@
CXXFLAGS=@wxCXXFLAGS@
LDFLAGS=@wxLDFLAGS@

View file

@ -0,0 +1,70 @@
#############################################################################
# Name: build/cmake/build_cfg.cmake
# Purpose: Create and configure build.cfg
# Author: Maarten Bent
# Created: 2021-06-17
# Copyright: (c) 2021 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
macro(wx_buildfile_var var)
# convert TRUE/FALSE to 1/0, add _bf suffix for use in build.cfg
if(${var})
set(${var}_bf 1)
else()
set(${var}_bf 0)
endif()
endmacro()
wx_buildfile_var(wxBUILD_MONOLITHIC)
wx_buildfile_var(wxBUILD_SHARED)
wx_buildfile_var(wxUSE_EXCEPTIONS)
wx_buildfile_var(wxUSE_THREADS)
wx_buildfile_var(wxUSE_AUI)
wx_buildfile_var(wxUSE_GUI)
wx_buildfile_var(wxUSE_HTML)
wx_buildfile_var(wxUSE_MEDIACTRL)
wx_buildfile_var(wxUSE_OPENGL)
wx_buildfile_var(wxUSE_DEBUGREPORT)
wx_buildfile_var(wxUSE_PROPGRID)
wx_buildfile_var(wxUSE_RIBBON)
wx_buildfile_var(wxUSE_RICHTEXT)
wx_buildfile_var(wxUSE_STC)
wx_buildfile_var(wxUSE_WEBVIEW)
wx_buildfile_var(wxUSE_XRC)
if(wxUSE_NO_RTTI)
set(wxUSE_RTTI 0)
else()
set(wxUSE_RTTI 1)
endif()
if(wxBUILD_STRIPPED_RELEASE)
set(wxDEBUG_INFO 0)
else()
set(wxDEBUG_INFO 1)
endif()
if(wxBUILD_USE_STATIC_RUNTIME)
set(wxRUNTIME_LIBS "static")
else()
set(wxRUNTIME_LIBS "dynamic")
endif()
set(wxDEBUG_FLAG ${wxBUILD_DEBUG_LEVEL})
get_filename_component(wxCC ${CMAKE_C_COMPILER} NAME_WE)
get_filename_component(wxCXX ${CMAKE_CXX_COMPILER} NAME_WE)
set(wxCFLAGS ${CMAKE_C_FLAGS})
set(wxCPPFLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_C_FLAGS}")
set(wxCXXFLAGS ${CMAKE_CXX_FLAGS})
set(wxLDFLAGS ${CMAKE_EXE_LINKER_FLAGS})
# These are currently not used by CMake
set(wxCFG "")
set(wxUNIV 0)
set(wxOFFICIAL_BUILD 0)
set(wxCOMPILER_VERSION "")
set(wxBUILD "release")
configure_file(build/cmake/build.cfg.in ${wxBUILD_FILE})
set(wxBUILD "debug")
configure_file(build/cmake/build.cfg.in ${wxBUILD_FILE_DEBUG})

View file

@ -12,107 +12,201 @@ file(MAKE_DIRECTORY ${wxCONFIG_DIR})
set(TOOLCHAIN_FULLNAME ${wxBUILD_FILE_ID})
macro(wx_configure_script input output)
set(abs_top_srcdir ${CMAKE_CURRENT_SOURCE_DIR})
set(abs_top_builddir ${CMAKE_CURRENT_BINARY_DIR})
# variables used in wx-config-inplace.in
set(abs_top_srcdir ${wxSOURCE_DIR})
set(abs_top_builddir ${wxBINARY_DIR})
configure_file(
${input}
${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${output}
${wxSOURCE_DIR}/${input}
${wxBINARY_DIR}${CMAKE_FILES_DIRECTORY}/${output}
ESCAPE_QUOTES @ONLY NEWLINE_STYLE UNIX)
file(COPY
${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${output}
${wxBINARY_DIR}${CMAKE_FILES_DIRECTORY}/${output}
DESTINATION ${wxCONFIG_DIR}
FILE_PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ
GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
)
endmacro()
macro(wx_get_dependencies var lib)
set(${var})
if(TARGET wx${lib})
get_target_property(deps wx${lib} LINK_LIBRARIES)
foreach(dep IN LISTS deps)
if(TARGET ${dep})
get_target_property(dep_type ${dep} TYPE)
if (dep_type STREQUAL "INTERFACE_LIBRARY")
get_target_property(dep_name ${dep} INTERFACE_OUTPUT_NAME)
else()
get_target_property(dep_name ${dep} OUTPUT_NAME)
endif()
# imported target
if(CMAKE_VERSION VERSION_GREATER "3.18")
# CMake <= 3.18 only allows a few properties to be checked, not LOCATION, see
# https://cmake.org/cmake/help/v3.18/manual/cmake-buildsystem.7.html#interface-libraries
set(prop_suffix)
if (CMAKE_BUILD_TYPE)
string(TOUPPER "${CMAKE_BUILD_TYPE}" prop_suffix)
set(prop_suffix "_${prop_suffix}")
endif()
if(NOT dep_name AND prop_suffix)
get_target_property(dep_name ${dep} LOCATION${prop_suffix})
endif()
if(NOT dep_name)
get_target_property(dep_name ${dep} LOCATION)
endif()
endif()
if(NOT dep_name)
get_target_property(dep_name ${dep} IMPORTED_LIBNAME)
endif()
else()
# For the value like $<$<CONFIG:DEBUG>:LIB_PATH>
# Or $<$<NOT:$<CONFIG:DEBUG>>:LIB_PATH>
string(REGEX REPLACE "^.+>:(.+)>$" "\\1" dep_name ${dep})
if (NOT dep_name)
set(dep_name ${dep})
endif()
endif()
if(dep_name STREQUAL "libc.so")
# don't include this library
elseif(dep_name MATCHES "^-(.*)$") # -l, -framework, -weak_framework
wx_string_append(${var} "${dep_name} ")
elseif(dep_name MATCHES "^lib(.*)(.so|.dylib|.tbd|.a)$")
wx_string_append(${var} "-l${CMAKE_MATCH_1} ")
elseif(dep_name)
get_filename_component(abs_path ${dep_name} PATH)
if (abs_path) # value contains path
wx_string_append(${var} "${dep_name} ")
else()
wx_string_append(${var} "-l${dep_name} ")
endif()
endif()
endforeach()
string(STRIP ${${var}} ${var})
endif()
endmacro()
function(wx_write_config_inplace)
wx_configure_script(
"${CMAKE_CURRENT_SOURCE_DIR}/wx-config-inplace.in"
"wx-config-inplace.in"
"inplace-${TOOLCHAIN_FULLNAME}"
)
if(WIN32_MSVC_NAMING)
set(COPY_CMD copy)
else()
set(COPY_CMD create_symlink)
endif()
execute_process(
COMMAND
${CMAKE_COMMAND} -E create_symlink
"lib/wx/config/inplace-${TOOLCHAIN_FULLNAME}"
"${CMAKE_CURRENT_BINARY_DIR}/wx-config"
"${CMAKE_COMMAND}" -E ${COPY_CMD}
"${wxBINARY_DIR}/lib/wx/config/inplace-${TOOLCHAIN_FULLNAME}"
"${wxBINARY_DIR}/wx-config"
)
endfunction()
function(wx_write_config)
# TODO: set variables
set(includedir "$")
wx_string_append(libdir "{prefix}/include")
set(libdir "$")
wx_string_append(libdir "{exec_prefix}/lib")
set(bindir "$")
wx_string_append(bindir "{exec_prefix}/bin")
if(CMAKE_CROSSCOMPILING)
set(cross_compiling yes)
else()
set(cross_compiling no)
endif()
set(prefix ${CMAKE_INSTALL_PREFIX})
set(exec_prefix $)
wx_string_append(exec_prefix "{prefix}")
set(BUILT_WX_LIBS)
foreach(lib IN LISTS wxLIB_TARGETS)
wx_string_append(BUILT_WX_LIBS " ${lib}")
endforeach()
set(CC ${CMAKE_C_COMPILER})
set(CXX ${CMAKE_CXX_COMPILER})
set(DMALLOC_LIBS)
find_program(EGREP egrep)
set(EXTRALIBS_GUI)
set(EXTRALIBS_HTML)
set(EXTRALIBS_SDL)
set(EXTRALIBS_STC)
set(EXTRALIBS_WEBVIEW)
set(EXTRALIBS_XML)
set(LDFLAGS_GL)
set(exec_prefix "\${prefix}")
set(includedir "\${prefix}/include")
set(libdir "\${exec_prefix}/lib")
set(bindir "\${exec_prefix}/bin")
if(wxBUILD_MONOLITHIC)
set(MONOLITHIC 1)
else()
set(MONOLITHIC 0)
endif()
set(OPENGL_LIBS)
set(RESCOMP)
if(wxBUILD_SHARED)
set(SHARED 1)
else()
set(SHARED 0)
endif()
set(lib_unicode_suffix u)
if(CMAKE_CROSSCOMPILING)
set(cross_compiling yes)
set(host_alias ${CMAKE_SYSTEM_NAME})
else()
set(cross_compiling no)
endif()
set(BUILT_WX_LIBS)
set(STD_BASE_LIBS)
set(STD_GUI_LIBS)
#TODO: setting TOOLCHAIN_NAME produces change results in config folder
# set(TOOLCHAIN_NAME)
set(STD_BASE_LIBS_ALL xml net base)
set(STD_GUI_LIBS_ALL xrc html qa adv core)
foreach(lib IN ITEMS xrc webview stc richtext ribbon propgrid aui gl media html qa adv core xml net base)
list(FIND wxLIB_TARGETS wx${lib} hasLib)
if (hasLib GREATER -1)
wx_string_append(BUILT_WX_LIBS "${lib} ")
list(FIND STD_BASE_LIBS_ALL ${lib} index)
if (index GREATER -1)
wx_string_append(STD_BASE_LIBS "${lib} ")
endif()
list(FIND STD_GUI_LIBS_ALL ${lib} index)
if (index GREATER -1)
wx_string_append(STD_GUI_LIBS "${lib} ")
endif()
endif()
endforeach()
string(STRIP "${BUILT_WX_LIBS}" BUILT_WX_LIBS)
string(STRIP "${STD_BASE_LIBS}" STD_BASE_LIBS)
string(STRIP "${STD_GUI_LIBS}" STD_GUI_LIBS)
set(WX_RELEASE ${wxMAJOR_VERSION}.${wxMINOR_VERSION})
set(WX_VERSION ${wxVERSION})
set(WX_SUBVERSION ${wxVERSION}.0)
set(WX_FLAVOUR)
set(TOOLKIT_DIR ${wxBUILD_TOOLKIT})
set(TOOLKIT_VERSION)
set(WIDGET_SET ${wxBUILD_WIDGETSET})
if(wxUSE_UNICODE)
set(WX_CHARTYPE unicode)
else()
set(WX_CHARTYPE ansi)
set(TOOLCHAIN_NAME "${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}-${WX_RELEASE}")
set(WX_LIBRARY_BASENAME_GUI "wx_${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}")
set(WX_LIBRARY_BASENAME_NOGUI "wx_base${lib_unicode_suffix}")
wx_get_dependencies(WXCONFIG_LIBS base)
wx_get_dependencies(EXTRALIBS_GUI core)
set(EXTRALIBS_SDL) # included in core libs when SDL is enabled
wx_get_dependencies(EXTRALIBS_HTML html)
wx_get_dependencies(EXTRALIBS_STC stc)
wx_get_dependencies(EXTRALIBS_WEBVIEW webview)
wx_get_dependencies(EXTRALIBS_XML xml)
wx_get_dependencies(EXTRALIBS_MEDIA media)
wx_get_dependencies(OPENGL_LIBS gl)
set(DMALLOC_LIBS)
if(wxBUILD_MONOLITHIC)
wx_get_dependencies(WXCONFIG_LIBS mono)
endif()
set(WX_FLAVOUR)
set(WX_LIBRARY_BASENAME_GUI)
set(WX_LIBRARY_BASENAME_NOGUI)
set(WX_RELEASE ${wxMAJOR_VERSION}.${wxMINOR_VERSION})
set(WX_SUBVERSION ${wxVERSION}.0)
set(WX_VERSION ${wxVERSION})
set(CC ${CMAKE_C_COMPILER})
set(CXX ${CMAKE_CXX_COMPILER})
set(WXCONFIG_CFLAGS)
set(WXCONFIG_CPPFLAGS)
set(WXCONFIG_CXXFLAGS)
set(WXCONFIG_LDFLAGS)
if(CMAKE_USE_PTHREADS_INIT)
set(WXCONFIG_CFLAGS "-pthread")
set(WXCONFIG_LDFLAGS "-pthread")
endif()
set(WXCONFIG_CPPFLAGS)
if(wxBUILD_SHARED)
wx_string_append(WXCONFIG_CPPFLAGS " -DWXUSINGDLL")
endif()
foreach(flag IN LISTS wxTOOLKIT_DEFINITIONS)
wx_string_append(WXCONFIG_CPPFLAGS " -D${flag}")
endforeach()
if(wxBUILD_LARGEFILE_SUPPORT)
wx_string_append(WXCONFIG_CPPFLAGS " -D_FILE_OFFSET_BITS=64")
endif()
string(STRIP "${WXCONFIG_CPPFLAGS}" WXCONFIG_CPPFLAGS)
set(WXCONFIG_CXXFLAGS ${WXCONFIG_CFLAGS})
set(WXCONFIG_LDFLAGS_GUI)
set(WXCONFIG_LIBS)
set(WXCONFIG_RESFLAGS)
set(WXCONFIG_RPATH)
set(WXCONFIG_RPATH "-Wl,-rpath,\$libdir")
set(LDFLAGS_GL)
set(RESCOMP)
wx_configure_script(
"${CMAKE_CURRENT_SOURCE_DIR}/wx-config.in"
"wx-config.in"
"${TOOLCHAIN_FULLNAME}"
)
endfunction()

View file

@ -7,75 +7,61 @@
# Licence: wxWindows licence
#############################################################################
function(wx_add_demo name)
cmake_parse_arguments(DEMO "" "NAME" "DATA;LIBRARIES" ${ARGN})
if(NOT DEMO_NAME)
set(DEMO_NAME ${name})
endif()
wx_list_add_prefix(src_files
"${wxSOURCE_DIR}/demos/${name}/"
${DEMO_UNPARSED_ARGUMENTS})
if(WIN32)
list(APPEND src_files ${wxSOURCE_DIR}/demos/${name}/${DEMO_NAME}.rc)
endif()
add_executable(${DEMO_NAME} WIN32 MACOSX_BUNDLE ${src_files})
if(DEMO_DATA)
# TODO: unify with data handling for samples
# TODO: handle data files differently for OS X bundles
# Copy data files to output directory
foreach(data_file ${DEMO_DATA})
list(APPEND cmds COMMAND ${CMAKE_COMMAND}
-E copy ${wxSOURCE_DIR}/demos/${name}/${data_file}
${wxOUTPUT_DIR}/${wxPLATFORM_LIB_DIR}/${data_file})
endforeach()
add_custom_command(
TARGET ${DEMO_NAME} ${cmds}
COMMENT "Copying demo data files...")
endif()
if(wxBUILD_SHARED)
target_compile_definitions(${DEMO_NAME} PRIVATE WXUSINGDLL)
endif()
target_link_libraries(${DEMO_NAME} core ${DEMO_LIBRARIES})
wx_set_common_target_properties(${DEMO_NAME})
set_target_properties(${DEMO_NAME} PROPERTIES FOLDER "Demos")
set_target_properties(${DEMO_NAME} PROPERTIES
VS_DEBUGGER_WORKING_DIRECTORY "${wxOUTPUT_DIR}/${wxCOMPILER_PREFIX}${wxARCH_SUFFIX}_${lib_suffix}"
)
endfunction()
wx_add_demo(bombs
bombs.cpp
bombs.h
bombs1.cpp
game.cpp
game.h
)
wx_add_demo(forty
forty.cpp
canvas.cpp
canvas.h
card.cpp
card.h
forty.cpp
forty.h
game.cpp
game.h
pile.cpp
pile.h
playerdg.cpp
playerdg.h
scoredg.cpp
scoredg.h
scorefil.cpp
scorefil.h
DATA
about.htm
LIBRARIES
html adv xml
wxhtml wxxml
)
wx_add_demo(fractal fractal.cpp)
wx_add_demo(fractal
fractal.cpp
)
wx_add_demo(life
life.cpp
dialogs.cpp
dialogs.h
game.cpp
game.h
life.cpp
life.h
reader.cpp
reader.h
DATA
breeder.lif
)
wx_add_demo(poem wxpoem.cpp
wx_add_demo(poem
wxpoem.cpp
wxpoem.h
DATA
wxpoem.txt wxpoem.dat wxpoem.idx
LIBRARIES
html
wxhtml
NAME
wxpoem
)

File diff suppressed because it is too large Load diff

File diff suppressed because it is too large Load diff

View file

@ -8,79 +8,158 @@
# Licence: wxWindows licence
#############################################################################
if(DEFINED wxBUILD_USE_STATIC_RUNTIME AND wxBUILD_USE_STATIC_RUNTIME)
if(DEFINED wxBUILD_CXX_STANDARD AND NOT wxBUILD_CXX_STANDARD STREQUAL COMPILER_DEFAULT)
set(CMAKE_CXX_STANDARD ${wxBUILD_CXX_STANDARD})
endif()
if(MSVC)
# Determine MSVC runtime library flag
set(MSVC_LIB_USE "/MD")
set(MSVC_LIB_REPLACE "/MT")
if(wxBUILD_USE_STATIC_RUNTIME)
set(MSVC_LIB_USE "/MT")
set(MSVC_LIB_REPLACE "/MD")
endif()
# Set MSVC runtime flags for all configurations
foreach(cfg "" ${CMAKE_CONFIGURATION_TYPES})
set(flag_var CMAKE_CXX_FLAGS)
set(c_flag_var CMAKE_C_FLAGS)
set(cxx_flag_var CMAKE_CXX_FLAGS)
if(cfg)
string(TOUPPER ${cfg} cfg_upper)
wx_string_append(flag_var "_${cfg_upper}")
wx_string_append(c_flag_var "_${cfg_upper}")
wx_string_append(cxx_flag_var "_${cfg_upper}")
endif()
if(${flag_var} MATCHES "/MD")
string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
if(${c_flag_var} MATCHES ${MSVC_LIB_REPLACE})
string(REPLACE ${MSVC_LIB_REPLACE} ${MSVC_LIB_USE} ${c_flag_var} "${${c_flag_var}}")
set(${c_flag_var} ${${c_flag_var}} CACHE STRING
"Flags used by the C compiler during ${cfg_upper} builds." FORCE)
endif()
if(${cxx_flag_var} MATCHES ${MSVC_LIB_REPLACE})
string(REPLACE ${MSVC_LIB_REPLACE} ${MSVC_LIB_USE} ${cxx_flag_var} "${${cxx_flag_var}}")
set(${cxx_flag_var} ${${cxx_flag_var}} CACHE STRING
"Flags used by the CXX compiler during ${cfg_upper} builds." FORCE)
endif()
endforeach()
if(wxBUILD_OPTIMISE)
set(MSVC_LINKER_RELEASE_FLAGS " /LTCG /OPT:REF /OPT:ICF")
wx_string_append(CMAKE_EXE_LINKER_FLAGS_RELEASE "${MSVC_LINKER_RELEASE_FLAGS}")
wx_string_append(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${MSVC_LINKER_RELEASE_FLAGS}")
wx_string_append(CMAKE_STATIC_LINKER_FLAGS_RELEASE " /LTCG")
set(MSVC_COMPILER_RELEASE_FLAGS " /Ox /Oi /Ot /Oy /GS- /Gy /GL /Gw")
wx_string_append(CMAKE_CXX_FLAGS_RELEASE "${MSVC_COMPILER_RELEASE_FLAGS}")
wx_string_append(CMAKE_C_FLAGS_RELEASE "${MSVC_COMPILER_RELEASE_FLAGS}")
endif()
if(NOT wxBUILD_STRIPPED_RELEASE)
set(MSVC_PDB_FLAG " /DEBUG")
endif()
wx_string_append(CMAKE_EXE_LINKER_FLAGS_RELEASE "${MSVC_PDB_FLAG}")
wx_string_append(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${MSVC_PDB_FLAG}")
if(wxBUILD_MSVC_MULTIPROC)
wx_string_append(CMAKE_C_FLAGS " /MP")
wx_string_append(CMAKE_CXX_FLAGS " /MP")
endif()
if(NOT POLICY CMP0092)
string(REGEX REPLACE "/W[0-4]" "" CMAKE_C_FLAGS "${CMAKE_C_FLAGS}")
string(REGEX REPLACE "/W[0-4]" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
endif()
elseif(("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU") OR ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang"))
if(wxBUILD_OPTIMISE)
set(GCC_PREFERRED_RELEASE_FLAGS " -O2 -fomit-frame-pointer")
wx_string_append(CMAKE_CXX_FLAGS_RELEASE "${GCC_PREFERRED_RELEASE_FLAGS}")
wx_string_append(CMAKE_C_FLAGS_RELEASE "${GCC_PREFERRED_RELEASE_FLAGS}")
endif()
if(wxBUILD_STRIPPED_RELEASE)
set(LD_STRIPPING_FLAG " -s")
wx_string_append(CMAKE_EXE_LINKER_FLAGS_RELEASE "${LD_STRIPPING_FLAG}")
wx_string_append(CMAKE_SHARED_LINKER_FLAGS_RELEASE "${LD_STRIPPING_FLAG}")
else()
set(COMPILER_DBGSYM_FLAG " -g")
wx_string_append(CMAKE_CXX_FLAGS_RELEASE "${COMPILER_DBGSYM_FLAG}")
wx_string_append(CMAKE_C_FLAGS_RELEASE "${COMPILER_DBGSYM_FLAG}")
endif()
if(wxBUILD_USE_STATIC_RUNTIME AND NOT APPLE)
if(MINGW)
set(STATIC_LINKER_FLAGS " -static")
else()
set(STATIC_LINKER_FLAGS " -static-libgcc -static-libstdc++")
endif()
wx_string_append(CMAKE_EXE_LINKER_FLAGS "${STATIC_LINKER_FLAGS}")
wx_string_append(CMAKE_SHARED_LINKER_FLAGS "${STATIC_LINKER_FLAGS}")
endif()
endif()
if(wxBUILD_MSVC_MULTIPROC)
wx_string_append(CMAKE_C_FLAGS " /MP")
wx_string_append(CMAKE_CXX_FLAGS " /MP")
endif()
if(wxBUILD_COMPATIBILITY VERSION_LESS 3.0)
set(WXWIN_COMPATIBILITY_2_8 ON)
endif()
if(wxBUILD_COMPATIBILITY VERSION_LESS 3.1)
set(WXWIN_COMPATIBILITY_3_0 ON)
if(NOT wxBUILD_COMPATIBILITY STREQUAL "NONE")
set(WXWIN_COMPATIBILITY_3_2 ON)
if(wxBUILD_COMPATIBILITY VERSION_LESS 3.2)
set(WXWIN_COMPATIBILITY_3_0 ON)
endif()
endif()
# Build wxBUILD_FILE_ID used for config and setup path
#TODO: build different id for WIN32
set(wxBUILD_FILE_ID "${wxBUILD_TOOLKIT}${wxBUILD_WIDGETSET}-")
if(wxUSE_UNICODE)
wx_string_append(wxBUILD_FILE_ID "unicode")
else()
wx_string_append(wxBUILD_FILE_ID "ansi")
endif()
wx_string_append(wxBUILD_FILE_ID "unicode")
if(NOT wxBUILD_SHARED)
wx_string_append(wxBUILD_FILE_ID "-static")
endif()
wx_string_append(wxBUILD_FILE_ID "-${wxMAJOR_VERSION}.${wxMINOR_VERSION}")
wx_get_flavour(lib_flavour "-")
wx_string_append(wxBUILD_FILE_ID "${lib_flavour}")
set(wxPLATFORM_ARCH)
if(CMAKE_GENERATOR_PLATFORM)
if (CMAKE_GENERATOR_PLATFORM STREQUAL "x64")
set(wxPLATFORM_ARCH "x64")
elseif(CMAKE_GENERATOR_PLATFORM STREQUAL "ARM64")
set(wxPLATFORM_ARCH "arm64")
endif()
elseif(CMAKE_VS_PLATFORM_NAME)
if (CMAKE_VS_PLATFORM_NAME STREQUAL "x64")
set(wxPLATFORM_ARCH "x64")
elseif(CMAKE_VS_PLATFORM_NAME STREQUAL "ARM64")
set(wxPLATFORM_ARCH "arm64")
endif()
else()
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(wxPLATFORM_ARCH "x64")
endif()
endif()
set(wxARCH_SUFFIX)
set(wxCOMPILER_PREFIX)
set(wxPLATFORM_LIB_DIR)
# TODO: include compiler version in wxCOMPILER_PREFIX ?
if(WIN32)
if(MSVC)
# TODO: include compiler version in wxCOMPILER_PREFIX for official builds
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC")
set(wxCOMPILER_PREFIX "vc")
elseif(CMAKE_COMPILER_IS_GNUCXX)
elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
set(wxCOMPILER_PREFIX "gcc")
elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
set(wxCOMPILER_PREFIX "clang")
else()
message(FATAL_ERROR "Unknown WIN32 compiler type")
endif()
if(CMAKE_CL_64)
set(wxARCH_SUFFIX "_x64")
if(wxPLATFORM_ARCH)
set(wxARCH_SUFFIX "_${wxPLATFORM_ARCH}")
endif()
else()
set(wxCOMPILER_PREFIX)
endif()
if(MSVC OR MINGW)
if(WIN32_MSVC_NAMING)
if(wxBUILD_SHARED)
set(lib_suffix "dll")
set(lib_suffix "_dll")
else()
set(lib_suffix "lib")
set(lib_suffix "_lib")
endif()
if(MSVC)
# Include generator expression to supress default Debug/Release pair
set(wxPLATFORM_LIB_DIR "$<1:/>${wxCOMPILER_PREFIX}${wxARCH_SUFFIX}_${lib_suffix}")
else()
set(wxPLATFORM_LIB_DIR "/${wxCOMPILER_PREFIX}${wxARCH_SUFFIX}_${lib_suffix}")
endif()
else()
set(wxPLATFORM_LIB_DIR)
set(wxPLATFORM_LIB_DIR "${wxCOMPILER_PREFIX}${wxARCH_SUFFIX}${lib_suffix}")
endif()
if(wxBUILD_CUSTOM_SETUP_HEADER_PATH)
@ -90,14 +169,10 @@ if(wxBUILD_CUSTOM_SETUP_HEADER_PATH)
set(wxSETUP_HEADER_PATH ${wxBUILD_CUSTOM_SETUP_HEADER_PATH})
else()
# Set path where setup.h will be created
if(MSVC OR MINGW)
if(wxUSE_UNICODE)
set(lib_unicode u)
else()
set(lib_unicode)
endif()
if(WIN32_MSVC_NAMING)
set(lib_unicode u)
set(wxSETUP_HEADER_PATH
${wxOUTPUT_DIR}/${wxCOMPILER_PREFIX}${wxARCH_SUFFIX}_${lib_suffix}/${wxBUILD_TOOLKIT}${lib_unicode})
${wxOUTPUT_DIR}/${wxPLATFORM_LIB_DIR}/${wxBUILD_TOOLKIT}${lib_unicode})
file(MAKE_DIRECTORY ${wxSETUP_HEADER_PATH}/wx)
file(MAKE_DIRECTORY ${wxSETUP_HEADER_PATH}d/wx)
set(wxSETUP_HEADER_FILE_DEBUG ${wxSETUP_HEADER_PATH}d/wx/setup.h)
@ -109,73 +184,495 @@ else()
endif()
set(wxSETUP_HEADER_FILE ${wxSETUP_HEADER_PATH}/wx/setup.h)
if(NOT wxBUILD_CUSTOM_SETUP_HEADER_PATH AND MSVC)
set(wxBUILD_FILE ${wxSETUP_HEADER_PATH}/build.cfg)
set(wxBUILD_FILE_DEBUG ${wxSETUP_HEADER_PATH}d/build.cfg)
if(DEFINED wxSETUP_HEADER_FILE_DEBUG)
# Append configuration specific suffix to setup header path
wx_string_append(wxSETUP_HEADER_PATH "$<$<CONFIG:Debug>:d>")
endif()
if(wxUSE_ON_FATAL_EXCEPTION AND MSVC AND (MSVC_VERSION GREATER 1800) )
# see include/wx/msw/seh.h for more details
add_compile_options("/EHa")
if(NOT wxBUILD_DEBUG_LEVEL STREQUAL "Default")
add_compile_options("-DwxDEBUG_LEVEL=${wxBUILD_DEBUG_LEVEL}")
endif()
# Constants for setup.h creation
set(wxUSE_STD_DEFAULT ON)
if(wxUSE_UNICODE)
set(wxUSE_WCHAR_T ON)
endif()
if(NOT wxUSE_EXPAT)
set(wxUSE_XRC OFF)
endif()
set(wxUSE_XML ${wxUSE_XRC})
if(wxUSE_CONFIG)
set(wxUSE_CONFIG_NATIVE ON)
endif()
if(DEFINED wxUSE_OLE AND wxUSE_OLE)
set(wxUSE_OLE_AUTOMATION ON)
endif()
if(DEFINED wxUSE_GRAPHICS_DIRECT2D AND NOT wxUSE_GRAPHICS_CONTEXT)
set(wxUSE_GRAPHICS_DIRECT2D OFF)
if(wxUSE_ACTIVEX AND DEFINED wxUSE_OLE AND NOT wxUSE_OLE)
message(WARNING "wxActiveXContainer requires wxUSE_OLE... disabled")
wx_option_force_value(wxUSE_ACTIVEX OFF)
endif()
if(wxUSE_DRAG_AND_DROP AND DEFINED wxUSE_OLE AND NOT wxUSE_OLE)
message(WARNING "wxUSE_DRAG_AND_DROP requires wxUSE_OLE... disabled")
wx_option_force_value(wxUSE_DRAG_AND_DROP OFF)
endif()
if(wxUSE_ACCESSIBILITY AND DEFINED wxUSE_OLE AND NOT wxUSE_OLE)
message(WARNING "wxUSE_ACCESSIBILITY requires wxUSE_OLE... disabled")
wx_option_force_value(wxUSE_ACCESSIBILITY OFF)
endif()
if(wxUSE_MEDIACTRL AND DEFINED wxUSE_ACTIVEX AND NOT wxUSE_ACTIVEX)
message(WARNING "wxMediaCtl requires wxActiveXContainer... disabled")
wx_option_force_value(wxUSE_MEDIACTRL OFF)
endif()
if(wxUSE_WEBVIEW AND DEFINED wxUSE_ACTIVEX AND NOT wxUSE_ACTIVEX)
message(WARNING "wxWebView requires wxActiveXContainer... disabled")
wx_option_force_value(wxUSE_WEBVIEW OFF)
endif()
if(wxUSE_OPENGL)
set(wxUSE_GLCANVAS ON)
endif()
if(wxUSE_ARCHIVE_STREAMS AND NOT wxUSE_STREAMS)
message(WARNING "wxArchive requires wxStreams... disabled")
wx_option_force_value(wxUSE_ARCHIVE_STREAMS OFF)
endif()
if(wxUSE_ZIPSTREAM AND (NOT wxUSE_ARCHIVE_STREAMS OR NOT wxUSE_ZLIB))
message(WARNING "wxZip requires wxArchive or wxZlib... disabled")
wx_option_force_value(wxUSE_ZIPSTREAM OFF)
endif()
if(wxUSE_TARSTREAM AND NOT wxUSE_ARCHIVE_STREAMS)
message(WARNING "wxTar requires wxArchive... disabled")
wx_option_force_value(wxUSE_TARSTREAM OFF)
endif()
if(wxUSE_FILESYSTEM AND (NOT wxUSE_STREAMS OR (NOT wxUSE_FILE AND NOT wxUSE_FFILE)))
message(WARNING "wxFileSystem requires wxStreams and wxFile or wxFFile... disabled")
wx_option_force_value(wxUSE_FILESYSTEM OFF)
endif()
if(wxUSE_FS_ARCHIVE AND (NOT wxUSE_FILESYSTEM OR NOT wxUSE_ARCHIVE_STREAMS))
message(WARNING "wxArchiveFSHandler requires wxArchive and wxFileSystem... disabled")
wx_option_force_value(wxUSE_FS_ARCHIVE OFF)
endif()
if(wxUSE_FS_ARCHIVE AND (NOT wxUSE_FILESYSTEM OR NOT wxUSE_ARCHIVE_STREAMS))
message(WARNING "wxArchiveFSHandler requires wxArchive and wxFileSystem... disabled")
wx_option_force_value(wxUSE_FS_ARCHIVE OFF)
endif()
if(wxUSE_FS_ZIP AND NOT wxUSE_FS_ARCHIVE)
message(WARNING "wxZipFSHandler requires wxArchiveFSHandler... disabled")
wx_option_force_value(wxUSE_FS_ZIP OFF)
endif()
if(wxUSE_TEXTFILE AND (NOT wxUSE_FILE OR NOT wxUSE_TEXTBUFFER))
message(WARNING "wxTextFile requires wxFile and wxTextBuffer... disabled")
wx_option_force_value(wxUSE_TEXTFILE OFF)
endif()
if(wxUSE_MIMETYPE AND NOT wxUSE_TEXTFILE)
message(WARNING "wxUSE_MIMETYPE requires wxTextFile... disabled")
wx_option_force_value(wxUSE_MIMETYPE OFF)
endif()
if(wxUSE_CONFIG)
if(NOT wxUSE_TEXTFILE)
message(WARNING "wxConfig requires wxTextFile... disabled")
wx_option_force_value(wxUSE_CONFIG OFF)
else()
set(wxUSE_CONFIG_NATIVE ON)
endif()
endif()
if(wxUSE_INTL AND NOT wxUSE_FILE)
message(WARNING "I18n code requires wxFile... disabled")
wx_option_force_value(wxUSE_INTL OFF)
endif()
if(wxUSE_THREADS)
find_package(Threads REQUIRED)
endif()
if(wxUSE_LIBLZMA)
find_package(LibLZMA)
if(NOT LIBLZMA_FOUND)
message(WARNING "libLZMA not found, LZMA compression won't be available")
wx_option_force_value(wxUSE_LIBLZMA OFF)
endif()
endif()
if (wxUSE_WEBREQUEST)
if(wxUSE_WEBREQUEST_CURL)
find_package(CURL)
if(NOT CURL_FOUND)
message(WARNING "CURL not found, wxWebSessionBackendCURL won't be available")
wx_option_force_value(wxUSE_WEBREQUEST_CURL OFF)
endif()
endif()
include(CheckCSourceCompiles)
if(wxUSE_WEBREQUEST_WINHTTP)
check_c_source_compiles("#include <windows.h>
#include <winhttp.h>
int main(){return 0;}"
HAVE_WINHTTP_H)
if(NOT HAVE_WINHTTP_H)
message(WARNING "winhttp.h not found, wxWebSessionBackendWinHTTP won't be available")
wx_option_force_value(wxUSE_WEBREQUEST_WINHTTP OFF)
endif()
endif()
if (NOT(wxUSE_WEBREQUEST_WINHTTP OR wxUSE_WEBREQUEST_URLSESSION OR wxUSE_WEBREQUEST_CURL))
message(WARNING "wxUSE_WEBREQUEST requires at least one backend, it won't be available")
wx_option_force_value(wxUSE_WEBREQUEST OFF)
endif()
endif()
if(UNIX)
if(wxUSE_SECRETSTORE AND NOT APPLE)
# The required APIs are always available under MSW and OS X but we must
# have GNOME libsecret under Unix to be able to compile this class.
find_package(LIBSECRET)
if(NOT LIBSECRET_FOUND)
message(WARNING "libsecret not found, wxSecretStore won't be available")
wx_option_force_value(wxUSE_SECRETSTORE OFF)
endif()
endif()
if(wxUSE_LIBICONV)
find_package(ICONV)
if(NOT ICONV_FOUND)
message(WARNING "iconv not found")
wx_option_force_value(wxUSE_LIBICONV OFF)
endif()
endif()
if(wxBUILD_LARGEFILE_SUPPORT)
set(HAVE_LARGEFILE_SUPPORT ON)
endif()
endif(UNIX)
if(wxUSE_GUI)
if(WIN32 AND wxUSE_METAFILE)
if(WXMSW AND wxUSE_METAFILE)
# this one should probably be made separately configurable
set(wxUSE_ENH_METAFILE ON)
endif()
# Direct2D check
if(WIN32 AND wxUSE_GRAPHICS_DIRECT2D)
check_include_file(d2d1.h HAVE_D2D1_H)
if (NOT HAVE_D2D1_H)
wx_option_force_value(wxUSE_GRAPHICS_DIRECT2D OFF)
endif()
endif()
if(MSVC) # match setup.h
wx_option_force_value(wxUSE_GRAPHICS_DIRECT2D ${wxUSE_GRAPHICS_CONTEXT})
endif()
# WXQT checks
if(WXQT)
wx_option_force_value(wxUSE_WEBVIEW OFF)
wx_option_force_value(wxUSE_METAFILE OFF)
if(WIN32)
wx_option_force_value(wxUSE_ACCESSIBILITY OFF)
wx_option_force_value(wxUSE_OWNER_DRAWN OFF)
endif()
endif()
# WXGTK checks, match include/wx/gtk/chkconf.h
if(WXGTK)
wx_option_force_value(wxUSE_METAFILE OFF)
if(WIN32)
wx_option_force_value(wxUSE_CAIRO ON)
wx_option_force_value(wxUSE_ACCESSIBILITY OFF)
wx_option_force_value(wxUSE_OWNER_DRAWN OFF)
endif()
if(NOT UNIX)
wx_option_force_value(wxUSE_WEBVIEW OFF)
wx_option_force_value(wxUSE_MEDIACTRL OFF)
wx_option_force_value(wxUSE_UIACTIONSIMULATOR OFF)
wx_option_force_value(wxUSE_OPENGL OFF)
set(wxUSE_GLCANVAS OFF)
endif()
endif()
# extra dependencies
if(wxUSE_OPENGL)
find_package(OpenGL)
if(WXOSX_IPHONE)
set(OPENGL_FOUND TRUE)
set(OPENGL_LIBRARIES "-framework OpenGLES" "-framework QuartzCore" "-framework GLKit")
else()
find_package(OpenGL)
if(OPENGL_FOUND)
foreach(gltarget OpenGL::GL OpenGL::GLU OpenGL::OpenGL)
if(TARGET ${gltarget})
set(OPENGL_LIBRARIES ${gltarget} ${OPENGL_LIBRARIES})
endif()
endforeach()
endif()
if(WXGTK3 AND OpenGL_EGL_FOUND AND wxUSE_GLCANVAS_EGL)
if(TARGET OpenGL::EGL)
set(OPENGL_LIBRARIES OpenGL::EGL ${OPENGL_LIBRARIES})
else()
# It's possible for OpenGL::EGL not to be set even when EGL
# is found, at least under Cygwin (see #23673), so use the
# library directly like this to avoid link problems.
set(OPENGL_LIBRARIES ${OPENGL_egl_LIBRARY} ${OPENGL_LIBRARIES})
endif()
set(OPENGL_INCLUDE_DIR ${OPENGL_INCLUDE_DIR} ${OPENGL_EGL_INCLUDE_DIRS})
find_package(WAYLANDEGL)
if(WAYLANDEGL_FOUND AND wxHAVE_GDK_WAYLAND)
list(APPEND OPENGL_LIBRARIES ${WAYLANDEGL_LIBRARIES})
endif()
endif()
endif()
if(NOT OPENGL_FOUND)
message(WARNING "opengl not found, wxGLCanvas won't be available")
wx_option_force_value(wxUSE_OPENGL OFF)
endif()
endif()
if(wxUSE_WEBVIEW AND WXGTK)
find_package(LibSoup)
find_package(Webkit)
if(NOT WEBKIT_FOUND OR NOT LIBSOUP_FOUND)
message(WARNING "webkit not found, wxWebview won't be available")
wx_option_force_value(wxUSE_WEBVIEW OFF)
if(UNIX AND (NOT WXGTK3 OR NOT OpenGL_EGL_FOUND))
wx_option_force_value(wxUSE_GLCANVAS_EGL OFF)
endif()
endif()
if(wxUSE_MEDIACTRL AND UNIX AND NOT APPLE AND NOT WIN32)
find_package(GStreamer)
if(wxUSE_WEBVIEW)
if(WXGTK)
if(wxUSE_WEBVIEW_WEBKIT)
set(WEBKIT_LIBSOUP_VERSION 2.4)
if(WXGTK2)
find_package(WEBKIT 1.0)
elseif(WXGTK3)
find_package(WEBKIT2 4.1 QUIET)
if(WEBKIT2_FOUND)
set(WEBKIT_LIBSOUP_VERSION 3.0)
else()
find_package(WEBKIT2 4.0)
endif()
if(NOT WEBKIT2_FOUND)
find_package(WEBKIT 3.0)
endif()
endif()
find_package(LIBSOUP ${WEBKIT_LIBSOUP_VERSION})
endif()
set(wxUSE_WEBVIEW_WEBKIT OFF)
set(wxUSE_WEBVIEW_WEBKIT2 OFF)
if(WEBKIT_FOUND AND LIBSOUP_FOUND)
set(wxUSE_WEBVIEW_WEBKIT ON)
elseif(WEBKIT2_FOUND AND LIBSOUP_FOUND)
set(wxUSE_WEBVIEW_WEBKIT2 ON)
else()
message(WARNING "webkit not found or enabled, wxWebview won't be available")
wx_option_force_value(wxUSE_WEBVIEW OFF)
endif()
elseif(WXMSW)
if(NOT wxUSE_WEBVIEW_IE AND NOT wxUSE_WEBVIEW_EDGE)
message(WARNING "WebviewIE and WebviewEdge not found or enabled, wxWebview won't be available")
wx_option_force_value(wxUSE_WEBVIEW OFF)
endif()
elseif(APPLE)
if(NOT wxUSE_WEBVIEW_WEBKIT)
message(WARNING "webkit not found or enabled, wxWebview won't be available")
wx_option_force_value(wxUSE_WEBVIEW OFF)
endif()
endif()
endif()
if(wxUSE_PRIVATE_FONTS AND WXGTK)
find_package(FONTCONFIG)
find_package(PANGOFT2)
if(NOT FONTCONFIG_FOUND OR NOT PANGOFT2_FOUND)
message(WARNING "Fontconfig or PangoFT2 not found, Private fonts won't be available")
wx_option_force_value(wxUSE_PRIVATE_FONTS OFF)
endif()
endif()
if(wxUSE_MEDIACTRL AND WXGTK AND NOT APPLE AND NOT WIN32)
find_package(GSTREAMER 1.0 COMPONENTS video)
if(NOT GSTREAMER_FOUND)
find_package(GSTREAMER 0.10 COMPONENTS interfaces)
endif()
set(wxUSE_GSTREAMER ${GSTREAMER_FOUND})
set(wxUSE_GSTREAMER_PLAYER OFF)
if(GSTREAMER_PLAYER_INCLUDE_DIRS)
set(wxUSE_GSTREAMER_PLAYER ON)
endif()
if(NOT GSTREAMER_FOUND)
message(WARNING "GStreamer not found, wxMediaCtrl won't be available")
wx_option_force_value(wxUSE_MEDIACTRL OFF)
endif()
else()
set(wxUSE_GSTREAMER OFF)
set(wxUSE_GSTREAMER_PLAYER OFF)
endif()
if(wxUSE_SOUND AND wxUSE_LIBSDL AND UNIX AND NOT APPLE)
find_package(SDL2)
if(NOT SDL2_FOUND)
find_package(SDL)
endif()
if(NOT SDL2_FOUND AND NOT SDL_FOUND)
message(WARNING "SDL not found, SDL Audio back-end won't be available")
wx_option_force_value(wxUSE_LIBSDL OFF)
endif()
else()
set(wxUSE_LIBSDL OFF)
endif()
if(wxUSE_NOTIFICATION_MESSAGE AND UNIX AND WXGTK AND wxUSE_LIBNOTIFY)
find_package(LIBNOTIFY)
if(NOT LIBNOTIFY_FOUND)
message(WARNING "Libnotify not found, it won't be used for notifications")
wx_option_force_value(wxUSE_LIBNOTIFY OFF)
else()
if(NOT LIBNOTIFY_VERSION VERSION_LESS 0.7)
set(wxUSE_LIBNOTIFY_0_7 ON)
endif()
list(APPEND wxTOOLKIT_EXTRA "libnotify")
endif()
else()
set(wxUSE_LIBNOTIFY OFF)
endif()
if(wxUSE_UIACTIONSIMULATOR AND UNIX AND WXGTK)
if(wxUSE_XTEST)
find_package(XTEST)
if(XTEST_FOUND)
list(APPEND wxTOOLKIT_INCLUDE_DIRS ${XTEST_INCLUDE_DIRS})
list(APPEND wxTOOLKIT_LIBRARIES ${XTEST_LIBRARIES})
else()
if(WXGTK3)
# This class can't work without XTest with GTK+ 3
# which uses XInput2 and so ignores XSendEvent().
message(STATUS "XTest not found, wxUIActionSimulator won't be available")
wx_option_force_value(wxUSE_UIACTIONSIMULATOR OFF)
endif()
# The other ports can use XSendEvent(), so don't warn
wx_option_force_value(wxUSE_XTEST OFF)
endif()
else(WXGTK3)
# As per above, wxUIActionSimulator can't be used in this case,
# but there is no need to warn, presumably the user knows what
# he's doing if wxUSE_XTEST was explicitly disabled.
wx_option_force_value(wxUSE_UIACTIONSIMULATOR OFF)
endif()
endif()
if(wxUSE_HTML AND UNIX AND wxUSE_LIBMSPACK)
find_package(MSPACK)
if(NOT MSPACK_FOUND)
message(STATUS "libmspack not found")
wx_option_force_value(wxUSE_LIBMSPACK OFF)
endif()
else()
set(wxUSE_LIBMSPACK OFF)
endif()
if(WXGTK AND wxUSE_PRINTING_ARCHITECTURE AND wxUSE_GTKPRINT)
find_package(GTKPRINT ${wxTOOLKIT_VERSION})
if(GTKPRINT_FOUND)
list(APPEND wxTOOLKIT_INCLUDE_DIRS ${GTKPRINT_INCLUDE_DIRS})
list(APPEND wxTOOLKIT_EXTRA "GTK+ printing")
else()
message(STATUS "GTK printing support not found (GTK+ >= 2.10), library will use GNOME printing support or standard PostScript printing")
wx_option_force_value(wxUSE_GTKPRINT OFF)
endif()
else()
set(wxUSE_GTKPRINT OFF)
endif()
if(WXGTK AND wxUSE_MIMETYPE AND wxUSE_LIBGNOMEVFS)
find_package(GNOMEVFS2)
if(GNOMEVFS2_FOUND)
list(APPEND wxTOOLKIT_INCLUDE_DIRS ${GNOMEVFS2_INCLUDE_DIRS})
list(APPEND wxTOOLKIT_LIBRARIES ${GNOMEVFS2_LIBRARIES})
list(APPEND wxTOOLKIT_EXTRA "gnomevfs")
else()
message(STATUS "libgnomevfs not found, library won't be used to associate MIME type")
wx_option_force_value(wxUSE_LIBGNOMEVFS OFF)
endif()
else()
set(wxUSE_LIBGNOMEVFS OFF)
endif()
if(WXGTK3 AND wxUSE_SPELLCHECK)
find_package(GSPELL)
if(GSPELL_FOUND)
list(APPEND wxTOOLKIT_INCLUDE_DIRS ${GSPELL_INCLUDE_DIRS})
list(APPEND wxTOOLKIT_LIBRARIES ${GSPELL_LIBRARIES})
else()
message(STATUS "gspell-1 not found, spell checking in wxTextCtrl won't be available")
wx_option_force_value(wxUSE_SPELLCHECK OFF)
endif()
endif()
if(wxUSE_CAIRO AND NOT WXGTK)
find_package(Cairo)
if(NOT CAIRO_FOUND)
message(WARNING "Cairo not found, Cairo renderer won't be available")
wx_option_force_value(wxUSE_CAIRO OFF)
endif()
endif()
if(WXGTK AND NOT APPLE AND NOT WIN32)
find_package(XKBCommon)
if(XKBCOMMON_FOUND)
list(APPEND wxTOOLKIT_INCLUDE_DIRS ${XKBCOMMON_INCLUDE_DIRS})
list(APPEND wxTOOLKIT_LIBRARIES ${XKBCOMMON_LIBRARIES})
set(HAVE_XKBCOMMON ON)
else()
message(STATUS "libxkbcommon not found, key codes in key events may be incorrect")
endif()
endif()
endif(wxUSE_GUI)
# test if precompiled headers are supported using the cotire test project
if(DEFINED wxBUILD_PRECOMP_PREV AND NOT wxBUILD_PRECOMP STREQUAL wxBUILD_PRECOMP_PREV)
set(CLEAN_PRECOMP_TEST TRUE)
endif()
set(wxBUILD_PRECOMP_PREV ${wxBUILD_PRECOMP} CACHE INTERNAL "")
if((wxBUILD_PRECOMP STREQUAL "ON" AND CMAKE_VERSION VERSION_LESS "3.16") OR (wxBUILD_PRECOMP STREQUAL "COTIRE"))
if(DEFINED CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED)
set(try_flags "-DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED=${CMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED}")
endif()
if (CLEAN_PRECOMP_TEST)
try_compile(RESULT_VAR_CLEAN
"${wxBINARY_DIR}/CMakeFiles/cotire_test"
"${wxSOURCE_DIR}/build/cmake/modules/cotire_test"
CotireExample clean_cotire
CMAKE_FLAGS ${try_flags}
)
endif()
try_compile(RESULT_VAR
"${wxBINARY_DIR}/CMakeFiles/cotire_test"
"${wxSOURCE_DIR}/build/cmake/modules/cotire_test"
CotireExample
CMAKE_FLAGS ${try_flags}
OUTPUT_VARIABLE OUTPUT_VAR
)
# check if output has precompiled header warnings. The build can still succeed, so check the output
# likely caused by gcc hardening: https://bugzilla.redhat.com/show_bug.cgi?id=1721553
# cc1plus: warning /path/to/project/cotire/name_CXX_prefix.hxx.gch: had text segment at different address
string(FIND "${OUTPUT_VAR}" "had text segment at different address" HAS_MESSAGE)
if(${HAS_MESSAGE} GREATER -1)
set(RESULT_VAR FALSE)
endif()
if(NOT RESULT_VAR)
message(WARNING "precompiled header (PCH) test failed, it will be turned off")
wx_option_force_value(wxBUILD_PRECOMP OFF)
else()
set(USE_COTIRE ON)
endif()
endif()

View file

@ -12,20 +12,72 @@ if(NOT wxBUILD_INSTALL)
endif()
install(CODE "message(STATUS \"Installing: Headers...\")")
wx_install(
install(
DIRECTORY "${wxSOURCE_DIR}/include/wx"
DESTINATION "include")
DESTINATION "${wxINSTALL_INCLUDE_DIR}")
if(MSVC)
wx_install(
install(
DIRECTORY "${wxSOURCE_DIR}/include/msvc"
DESTINATION "include")
DESTINATION "${wxINSTALL_INCLUDE_DIR}")
endif()
if(MSVC OR MINGW)
wx_install(
# setup header and wx-config
if(WIN32_MSVC_NAMING)
install(
DIRECTORY "${wxSETUP_HEADER_PATH}"
DESTINATION "lib${wxPLATFORM_LIB_DIR}")
DESTINATION "lib/${wxPLATFORM_LIB_DIR}")
else()
install(
DIRECTORY "${wxSETUP_HEADER_PATH}"
DESTINATION "lib/wx/include")
install(
FILES "${wxOUTPUT_DIR}/wx/config/${wxBUILD_FILE_ID}"
DESTINATION "lib/wx/config"
PERMISSIONS OWNER_EXECUTE OWNER_WRITE OWNER_READ
GROUP_EXECUTE GROUP_READ
WORLD_EXECUTE WORLD_READ
)
install(DIRECTORY DESTINATION "bin")
install(CODE "execute_process( \
COMMAND ${CMAKE_COMMAND} -E create_symlink \
\"${CMAKE_INSTALL_PREFIX}/lib/wx/config/${wxBUILD_FILE_ID}\" \
\"\$ENV{DESTDIR}${CMAKE_INSTALL_PREFIX}/bin/wx-config\" \
)"
)
endif()
install(EXPORT wxWidgetsTargets NAMESPACE wx:: DESTINATION "lib/cmake/wxWidgets/${wxPLATFORM_LIB_DIR}")
# find_package config file
include(CMakePackageConfigHelpers)
set(versionConfig "${wxOUTPUT_DIR}/wxWidgetsConfigVersion.cmake")
set(projectConfig "${wxOUTPUT_DIR}/wxWidgetsConfig.cmake")
if(CMAKE_VERSION VERSION_LESS "3.11")
set(versionCompat SameMajorVersion)
else()
set(versionCompat SameMinorVersion)
endif()
if(WIN32_MSVC_NAMING AND NOT CMAKE_VERSION VERSION_LESS "3.14")
set(archCompat ARCH_INDEPENDENT)
endif()
write_basic_package_version_file(
"${versionConfig}"
COMPATIBILITY ${versionCompat}
${archCompat}
)
configure_package_config_file(
"${wxSOURCE_DIR}/build/cmake/wxWidgetsConfig.cmake.in"
"${projectConfig}"
INSTALL_DESTINATION "lib/cmake/wxWidgets"
)
install(
FILES "${projectConfig}" "${versionConfig}"
DESTINATION "lib/cmake/wxWidgets"
)
# uninstall target
if(MSVC_IDE)
set(UNINST_NAME UNINSTALL)
@ -34,6 +86,21 @@ else()
endif()
if(NOT TARGET ${UNINST_NAME})
# these symlinks are not included in the install manifest
set(WX_EXTRA_UNINSTALL_FILES)
if(NOT WIN32_MSVC_NAMING)
if(IPHONE)
set(EXE_SUFFIX ".app")
else()
set(EXE_SUFFIX ${CMAKE_EXECUTABLE_SUFFIX})
endif()
set(WX_EXTRA_UNINSTALL_FILES
"${CMAKE_INSTALL_PREFIX}/bin/wx-config"
"${CMAKE_INSTALL_PREFIX}/bin/wxrc${EXE_SUFFIX}"
)
endif()
configure_file(
"${wxSOURCE_DIR}/build/cmake/uninstall.cmake.in"
"${wxBINARY_DIR}/uninstall.cmake"

View file

@ -7,22 +7,21 @@
# Licence: wxWindows licence
#############################################################################
include(../source_groups.cmake)
set(wxLIB_TARGETS)
if(wxBUILD_MONOLITHIC)
# Initialize variables for monolithic build
set(wxMONO_SRC_FILES)
set(wxMONO_LIBS_PRIVATE)
set(wxMONO_LIBS_PUBLIC)
set(wxMONO_INCLUDE_DIRS_PRIVATE)
set(wxMONO_INCLUDE_DIRS_PUBLIC)
set(wxMONO_INCLUDE_DIRS)
set(wxMONO_DEFINITIONS)
set(wxMONO_NONCOMPILED_CPP_FILES)
set(wxMONO_DEPENDENCIES)
endif()
# Define third party libraries
set(LIBS_THIRDPARTY regex zlib expat)
if(wxUSE_GUI)
list(APPEND LIBS_THIRDPARTY jpeg png tiff)
list(APPEND LIBS_THIRDPARTY jpeg png tiff nanosvg)
endif()
foreach(LIB IN LISTS LIBS_THIRDPARTY)
include(${LIB}.cmake)
@ -39,7 +38,6 @@ endmacro()
# Define base libraries
set(LIBS base)
add_opt_lib(net wxUSE_SOCKETS)
add_opt_lib(xml wxUSE_XML)
# Define UI libraries
if(wxUSE_GUI)
@ -63,6 +61,12 @@ if(wxUSE_GUI)
add_opt_lib(webview_chromium wxUSE_WEBVIEW_CHROMIUM)
endif() # wxUSE_GUI
# Include XML library last
# In the monolithic build, where all target properties (include dirs) from different targets are concatenated,
# wxml might include system expat, which might use Mono, which has it's own copy of png.
# Thus to ensure wx's core library includes the right png class, core must be processed first before xml
add_opt_lib(xml wxUSE_XML)
# Include cmake file for every library
foreach(LIB ${LIBS})
add_subdirectory(${LIB})
@ -70,26 +74,33 @@ endforeach()
if(wxBUILD_MONOLITHIC)
# Create monolithic library target
list(LENGTH wxMONO_SRC_FILES src_file_count)
wx_add_library(mono ${wxMONO_SRC_FILES})
wx_add_library(wxmono IS_MONO ${wxMONO_SRC_FILES})
foreach(vis PRIVATE PUBLIC)
if(wxMONO_LIBS_${vis})
# Remove libs included in mono from list
foreach(lib IN LISTS LIBS)
list(REMOVE_ITEM wxMONO_LIBS_${vis} ${lib})
list(REMOVE_ITEM wxMONO_LIBS_${vis} wx${lib})
endforeach()
target_link_libraries(mono ${vis} ${wxMONO_LIBS_${vis}})
endif()
if(wxMONO_INCLUDE_DIRS_${vis})
target_include_directories(mono ${vis} ${wxMONO_INCLUDE_DIRS_${vis}})
endif()
if(wxMONO_DEFINITIONS_${vis})
target_compile_definitions(mono ${vis} ${wxMONO_DEFINITIONS_${vis}})
target_link_libraries(wxmono ${vis} ${wxMONO_LIBS_${vis}})
endif()
endforeach()
if(wxMONO_INCLUDE_DIRS)
target_include_directories(wxmono BEFORE PRIVATE ${wxMONO_INCLUDE_DIRS})
endif()
if(wxMONO_DEFINITIONS)
target_compile_definitions(wxmono PRIVATE ${wxMONO_DEFINITIONS})
endif()
foreach(file ${wxMONO_NONCOMPILED_CPP_FILES})
set_source_files_properties(${file} PROPERTIES HEADER_FILE_ONLY TRUE)
endforeach()
foreach(dep ${wxMONO_DEPENDENCIES})
add_dependencies(wxmono ${dep})
endforeach()
if(wxUSE_WEBVIEW)
wx_webview_copy_webview2_loader(wxmono)
endif()
endif()
# Propagate variable(s) to parent scope
set(wxLIB_TARGETS ${wxLIB_TARGETS} PARENT_SCOPE)
set(wxTHIRD_PARTY_LIBRARIES ${wxTHIRD_PARTY_LIBRARIES} PARENT_SCOPE)

View file

@ -7,35 +7,4 @@
# Licence: wxWindows licence
#############################################################################
include(../../source_groups.cmake)
wx_append_sources(ADV_FILES ADVANCED_CMN)
if(WXMSW)
wx_append_sources(ADV_FILES ADVANCED_MSW)
wx_append_sources(ADV_FILES ADVANCED_MSW_NATIVE)
wx_append_sources(ADV_FILES ADVANCED_MSW_DESKTOP)
elseif(WXOSX_COCOA)
wx_append_sources(ADV_FILES ADVANCED_OSX_COCOA)
elseif(WXGTK)
wx_append_sources(ADV_FILES ADVANCED_GTK2)
wx_append_sources(ADV_FILES ADVANCED_GTK_NATIVE)
endif()
if(UNIX AND NOT APPLE AND NOT WIN32)
wx_append_sources(ADV_FILES ADVANCED_UNIX)
endif()
wx_add_library(adv ${ADV_FILES})
if(WIN32)
wx_lib_link_libraries(adv PRIVATE
winmm
)
endif()
if(WXOSX_COCOA)
wx_lib_link_libraries(adv PUBLIC
"-framework AudioToolbox"
)
endif()
wx_finalize_lib(adv)
wx_add_library(wxadv "${wxSOURCE_DIR}/src/common/dummy.cpp")

View file

@ -7,16 +7,12 @@
# Licence: wxWindows licence
#############################################################################
include(../../source_groups.cmake)
wx_append_sources(AUI_FILES AUI_CMN)
if(WXMSW)
wx_append_sources(AUI_FILES AUI_MSW)
elseif(WXGTK)
elseif(WXGTK2)
wx_append_sources(AUI_FILES AUI_GTK)
endif()
wx_add_library(aui ${AUI_FILES})
wx_finalize_lib(aui)
wx_add_library(wxaui ${AUI_FILES})

View file

@ -7,8 +7,6 @@
# Licence: wxWindows licence
#############################################################################
include(../../source_groups.cmake)
wx_append_sources(BASE_FILES BASE_CMN)
wx_append_sources(BASE_FILES BASE_AND_GUI_CMN)
@ -17,62 +15,55 @@ if(WIN32)
wx_append_sources(BASE_FILES BASE_AND_GUI_WIN32)
elseif(APPLE)
wx_append_sources(BASE_FILES BASE_OSX_SHARED)
if(wxBUILD_TOOLKIT MATCHES "osx_iphone")
wx_append_sources(BASE_FILES BASE_AND_GUI_OSX_IPHONE)
else()
if(WXOSX_COCOA)
wx_append_sources(BASE_FILES BASE_AND_GUI_OSX_COCOA)
endif()
elseif(UNIX)
wx_append_sources(BASE_FILES BASE_UNIX)
if(wxUSE_SECRETSTORE)
# The required APIs are always available under MSW and OS X but we must
# have GNOME libsecret under Unix to be able to compile this class.
find_package(Libsecret REQUIRED)
if(NOT LIBSECRET_FOUND)
message(WARNING "libsecret not found, wxSecretStore won't be available")
wx_option_force_value(wxUSE_SECRETSTORE OFF)
endif()
endif()
endif()
wx_add_library(base IS_BASE ${BASE_FILES})
wx_lib_link_libraries(base PRIVATE
${ZLIB_LIBRARIES}
${REGEX_LIBRARIES}
)
if(NOT wxBUILD_MONOLITHIC)
wx_lib_compile_definitions(base PRIVATE wxUSE_BASE=1)
endif()
wx_add_library(wxbase IS_BASE ${BASE_FILES})
if(wxUSE_ZLIB)
wx_lib_include_directories(base PRIVATE ${ZLIB_INCLUDE_DIRS})
wx_lib_include_directories(wxbase ${ZLIB_INCLUDE_DIRS})
wx_lib_link_libraries(wxbase PRIVATE ${ZLIB_LIBRARIES})
endif()
if(wxUSE_REGEX)
wx_lib_include_directories(base PRIVATE ${REGEX_INCLUDE_DIRS})
wx_lib_include_directories(wxbase ${REGEX_INCLUDE_DIRS})
wx_lib_link_libraries(wxbase PRIVATE ${REGEX_LIBRARIES})
endif()
if(LIBSECRET_FOUND)
wx_lib_include_directories(base PRIVATE ${LIBSECRET_INCLUDE_DIRS})
if(wxUSE_LIBLZMA)
wx_lib_include_directories(wxbase ${LIBLZMA_INCLUDE_DIRS})
wx_lib_link_libraries(wxbase PRIVATE ${LIBLZMA_LIBRARIES})
endif()
if(wxUSE_LIBICONV AND ICONV_LIBRARIES)
wx_lib_link_libraries(base PRIVATE ${ICONV_LIBRARIES})
if(UNIX AND wxUSE_SECRETSTORE)
wx_lib_include_directories(wxbase ${LIBSECRET_INCLUDE_DIRS})
wx_lib_link_libraries(wxbase PRIVATE ${LIBSECRET_LIBRARIES})
endif()
if(wxUSE_LIBICONV)
wx_lib_include_directories(wxbase ${ICONV_INCLUDE_DIR})
wx_lib_link_libraries(wxbase PRIVATE ${ICONV_LIBRARIES})
endif()
if(wxUSE_THREADS AND CMAKE_THREAD_LIBS_INIT)
wx_lib_link_libraries(base PRIVATE ${CMAKE_THREAD_LIBS_INIT})
endif()
if(APPLE)
wx_lib_link_libraries(base
PRIVATE
"-framework Security"
PUBLIC
"-framework Carbon"
"-framework Cocoa"
"-framework CoreFoundation"
"-framework IOKit"
)
elseif(UNIX)
wx_lib_link_libraries(base PRIVATE
dl
${LIBSECRET_LIBRARIES}
)
wx_lib_link_libraries(wxbase PRIVATE ${CMAKE_THREAD_LIBS_INIT})
endif()
wx_finalize_lib(base)
if(APPLE)
wx_lib_link_libraries(wxbase
PUBLIC
"-framework CoreFoundation"
)
if(WXOSX_COCOA)
wx_lib_link_libraries(wxbase
PRIVATE
"-framework Security"
PUBLIC
"-framework Carbon"
"-framework Cocoa"
"-framework IOKit"
"-framework QuartzCore"
)
endif()
elseif(UNIX)
wx_lib_link_libraries(wxbase PRIVATE ${CMAKE_DL_LIBS})
endif()

View file

@ -7,16 +7,15 @@
# Licence: wxWindows licence
#############################################################################
include(../../source_groups.cmake)
wx_option(wxUSE_IMAGE "use wxImage class" ON)
wx_append_sources(CORE_SRC GUI_CMN)
wx_append_sources(CORE_SRC BASE_AND_GUI_CMN)
if(WIN32)
wx_append_sources(CORE_SRC BASE_AND_GUI_WIN32)
elseif(UNIX)
wx_append_sources(CORE_SRC UNIX)
if(wxUSE_LIBSDL)
wx_append_sources(CORE_SRC UNIX_SOUND_SDL)
endif()
endif()
if(WXMSW)
@ -24,29 +23,91 @@ if(WXMSW)
wx_append_sources(CORE_SRC MSW_DESKTOP_LOWLEVEL)
wx_append_sources(CORE_SRC MSW)
wx_append_sources(CORE_SRC MSW_DESKTOP)
if(NOT wxUSE_OLE)
wx_list_add_prefix(CORE_SRC "${wxSOURCE_DIR}/" "src/generic/dirdlgg.cpp")
endif()
elseif(WXGTK)
wx_append_sources(CORE_SRC GTK2_LOWLEVEL)
wx_append_sources(CORE_SRC GTK2)
if(WXGTK2)
wx_append_sources(CORE_SRC GTK2_LOWLEVEL)
wx_append_sources(CORE_SRC GTK2)
else()
wx_append_sources(CORE_SRC GTK_LOWLEVEL)
wx_append_sources(CORE_SRC GTK)
endif()
wx_append_sources(CORE_SRC XWIN_LOWLEVEL)
if(UNIX)
wx_append_sources(CORE_SRC XWIN_LOWLEVEL)
elseif(WIN32)
wx_append_sources(CORE_SRC GTK_WIN32)
endif()
elseif(WXOSX_COCOA)
wx_append_sources(CORE_SRC BASE_AND_GUI_OSX_COCOA)
wx_append_sources(CORE_SRC OSX_LOWLEVEL)
wx_append_sources(CORE_SRC OSX_SHARED)
wx_append_sources(CORE_SRC OSX_COCOA)
elseif(WXOSX_IPHONE)
wx_append_sources(CORE_SRC OSX_LOWLEVEL)
wx_append_sources(CORE_SRC OSX_IPHONE)
elseif(WXQT)
wx_append_sources(CORE_SRC QT)
if(UNIX)
wx_append_sources(CORE_SRC QT_UNIX)
elseif(WIN32)
wx_append_sources(CORE_SRC QT_WIN32)
endif()
endif()
wx_add_library(core ${CORE_SRC})
foreach(lib JPEG PNG TIFF)
wx_add_library(wxcore ${CORE_SRC})
foreach(lib JPEG PNG TIFF NANOSVG)
if(${lib}_LIBRARIES)
if(lib STREQUAL JPEG)
wx_lib_include_directories(core PRIVATE ${${lib}_INCLUDE_DIR})
else()
wx_lib_include_directories(core PRIVATE ${${lib}_INCLUDE_DIRS})
endif()
wx_lib_link_libraries(core PRIVATE ${${lib}_LIBRARIES})
wx_lib_link_libraries(wxcore PRIVATE ${${lib}_LIBRARIES})
endif()
if(${lib}_INCLUDE_DIRS)
wx_lib_include_directories(wxcore ${${lib}_INCLUDE_DIRS})
elseif(${lib}_INCLUDE_DIR)
wx_lib_include_directories(wxcore ${${lib}_INCLUDE_DIR})
endif()
endforeach()
if(wxUSE_NANOSVG STREQUAL "sys" AND wxUSE_NANOSVG_EXTERNAL_ENABLE_IMPL)
wx_lib_compile_definitions(wxcore wxUSE_NANOSVG_EXTERNAL_ENABLE_IMPL)
endif()
wx_finalize_lib(core)
if(WIN32)
wx_lib_link_libraries(wxcore PRIVATE winmm)
endif()
if(WXOSX_COCOA)
wx_lib_link_libraries(wxcore PUBLIC "-framework AudioToolbox")
if(wxUSE_WEBVIEW)
wx_lib_link_libraries(wxcore PUBLIC "-framework WebKit")
endif()
endif()
if(WXOSX_IPHONE)
wx_lib_link_libraries(wxcore
PUBLIC
"-framework AudioToolbox"
"-framework CoreGraphics"
"-framework CoreText"
"-framework UIKit"
)
endif()
if(WXGTK AND wxUSE_PRIVATE_FONTS)
wx_lib_include_directories(wxcore ${FONTCONFIG_INCLUDE_DIRS} ${PANGOFT2_INCLUDE_DIRS})
wx_lib_link_libraries(wxcore PUBLIC ${FONTCONFIG_LIBRARIES} ${PANGOFT2_LIBRARIES})
endif()
if(wxUSE_LIBSDL)
if(SDL2_FOUND)
wx_lib_include_directories(wxcore ${SDL2_INCLUDE_DIR})
wx_lib_link_libraries(wxcore PUBLIC ${SDL2_LIBRARY})
elseif(SDL_FOUND)
wx_lib_include_directories(wxcore ${SDL_INCLUDE_DIR})
wx_lib_link_libraries(wxcore PUBLIC ${SDL_LIBRARY})
endif()
endif()
if(wxUSE_LIBNOTIFY)
wx_lib_include_directories(wxcore ${LIBNOTIFY_INCLUDE_DIRS})
wx_lib_link_libraries(wxcore PUBLIC ${LIBNOTIFY_LIBRARIES})
endif()
if(wxUSE_CAIRO AND NOT WXGTK)
wx_lib_include_directories(wxcore ${CAIRO_INCLUDE_DIRS})
# no libs, cairo is loaded dynamically
endif()

View file

@ -8,6 +8,8 @@
#############################################################################
if(wxUSE_EXPAT STREQUAL "builtin")
# TODO: implement building expat via its CMake file, using
# add_subdirectory or ExternalProject_Add
wx_add_builtin_library(wxexpat
src/expat/expat/lib/xmlparse.c
src/expat/expat/lib/xmlrole.c

View file

@ -7,20 +7,20 @@
# Licence: wxWindows licence
#############################################################################
include(../../source_groups.cmake)
wx_append_sources(GL_FILES OPENGL_CMN)
if(WIN32)
if(WXMSW)
wx_append_sources(GL_FILES OPENGL_MSW)
elseif(WXGTK)
wx_append_sources(GL_FILES OPENGL_GTK)
elseif(APPLE)
wx_append_sources(GL_FILES OPENGL_OSX_SHARED)
elseif(WXOSX_COCOA)
wx_append_sources(GL_FILES OPENGL_OSX_COCOA)
elseif(WXOSX_IPHONE)
wx_append_sources(GL_FILES OPENGL_OSX_IPHONE)
elseif(WXQT)
wx_append_sources(GL_FILES OPENGL_QT)
endif()
wx_add_library(gl ${GL_FILES})
wx_lib_include_directories(gl PUBLIC ${OPENGL_INCLUDE_DIR})
wx_lib_link_libraries(gl PUBLIC ${OPENGL_LIBRARIES})
wx_finalize_lib(gl)
wx_add_library(wxgl ${GL_FILES})
wx_lib_include_directories(wxgl ${OPENGL_INCLUDE_DIR})
wx_lib_link_libraries(wxgl PUBLIC ${OPENGL_LIBRARIES})

View file

@ -7,14 +7,15 @@
# Licence: wxWindows licence
#############################################################################
include(../../source_groups.cmake)
wx_append_sources(HTML_FILES HTML_CMN)
if(WIN32)
if(WIN32 OR wxUSE_LIBMSPACK)
wx_append_sources(HTML_FILES HTML_MSW)
endif()
wx_add_library(html ${HTML_FILES})
wx_add_library(wxhtml ${HTML_FILES})
wx_finalize_lib(html)
if(wxUSE_LIBMSPACK)
wx_lib_include_directories(wxhtml ${MSPACK_INCLUDE_DIRS})
wx_lib_link_libraries(wxhtml PRIVATE ${MSPACK_LIBRARIES})
endif()

View file

@ -7,30 +7,47 @@
# Licence: wxWindows licence
#############################################################################
include(../../source_groups.cmake)
wx_append_sources(MEDIA_FILES MEDIA_CMN)
if(WXMSW)
wx_append_sources(MEDIA_FILES MEDIA_MSW)
elseif(WXOSX_COCOA)
wx_append_sources(MEDIA_FILES MEDIA_OSX_COCOA)
elseif(UNIX)
elseif(WXOSX_IPHONE)
wx_append_sources(MEDIA_FILES MEDIA_OSX_IPHONE)
elseif(WXGTK)
wx_append_sources(MEDIA_FILES MEDIA_UNIX)
elseif(WXQT)
wx_append_sources(MEDIA_FILES MEDIA_QT)
endif()
wx_add_library(media ${MEDIA_FILES})
if(WXOSX_COCOA)
# TODO: add version detection of some kind and/or wx_option
wx_lib_compile_definitions(media PRIVATE -DwxOSX_USE_QTKIT=0)
wx_lib_link_libraries(media PUBLIC
wx_add_library(wxmedia ${MEDIA_FILES})
if(WXOSX)
wx_lib_link_libraries(wxmedia PUBLIC
"-framework AVFoundation"
"-framework AVKit"
"-framework CoreMedia"
"-weak_framework AVKit"
)
elseif(UNIX)
wx_lib_include_directories(media PUBLIC ${GSTREAMER_INCLUDE_DIRS})
wx_lib_link_libraries(media PUBLIC ${GSTREAMER_LIBRARIES})
endif()
elseif(WXGTK)
wx_lib_include_directories(wxmedia ${GSTREAMER_INCLUDE_DIRS})
if(GSTREAMER_INTERFACES_INCLUDE_DIRS)
wx_lib_include_directories(wxmedia ${GSTREAMER_INTERFACES_INCLUDE_DIRS})
endif()
if(GSTREAMER_VIDEO_INCLUDE_DIRS)
wx_lib_include_directories(wxmedia ${GSTREAMER_VIDEO_INCLUDE_DIRS})
endif()
if(GSTREAMER_PLAYER_INCLUDE_DIRS)
wx_lib_include_directories(wxmedia ${GSTREAMER_PLAYER_INCLUDE_DIRS})
endif()
wx_finalize_lib(media)
wx_lib_link_libraries(wxmedia PUBLIC ${GSTREAMER_LIBRARIES})
if(GSTREAMER_INTERFACES_LIBRARIES)
wx_lib_link_libraries(wxmedia PUBLIC ${GSTREAMER_INTERFACES_LIBRARIES})
endif()
if(GSTREAMER_VIDEO_LIBRARIES)
wx_lib_link_libraries(wxmedia PUBLIC ${GSTREAMER_VIDEO_LIBRARIES})
endif()
if(GSTREAMER_PLAYER_LIBRARIES)
wx_lib_link_libraries(wxmedia PUBLIC ${GSTREAMER_PLAYER_LIBRARIES})
endif()
endif()

View file

@ -0,0 +1,39 @@
#############################################################################
# Name: build/cmake/lib/nanosvg.cmake
# Purpose: Use external or internal nanosvg lib
# Author: Tamas Meszaros, Maarten Bent
# Created: 2022-05-05
# Copyright: (c) 2022 wxWidgets development team
# Licence: wxWindows licence
#############################################################################
if(wxUSE_NANOSVG STREQUAL "builtin")
set(wxUSE_NANOSVG_EXTERNAL 0 PARENT_SCOPE)
elseif(wxUSE_NANOSVG)
set(wxUSE_NANOSVG_EXTERNAL 1 PARENT_SCOPE)
set(NANOSVG_LIBRARIES )
set(NANOSVG_INCLUDE_DIRS )
set(wxUSE_NANOSVG_EXTERNAL_ENABLE_IMPL TRUE)
find_package(NanoSVG REQUIRED)
foreach(TARGETNAME NanoSVG::nanosvg NanoSVG::nanosvgrast unofficial::nanosvg)
if(NOT TARGET ${TARGETNAME})
continue()
endif()
list(APPEND NANOSVG_LIBRARIES ${TARGETNAME})
get_target_property(svg_incl_dir ${TARGETNAME} INTERFACE_INCLUDE_DIRECTORIES)
if(svg_incl_dir)
list(APPEND NANOSVG_INCLUDE_DIRS ${svg_incl_dir})
endif()
get_target_property(svg_lib_d ${TARGETNAME} IMPORTED_LOCATION_DEBUG)
get_target_property(svg_lib_r ${TARGETNAME} IMPORTED_LOCATION_RELEASE)
get_target_property(svg_lib ${TARGETNAME} IMPORTED_LOCATION)
if(svg_lib_d OR svg_lib_r OR svg_lib)
set(wxUSE_NANOSVG_EXTERNAL_ENABLE_IMPL FALSE)
endif()
endforeach()
endif()

View file

@ -7,8 +7,6 @@
# Licence: wxWindows licence
#############################################################################
include(../../source_groups.cmake)
wx_append_sources(NET_FILES NET_CMN)
if(WIN32)
@ -21,10 +19,17 @@ if(UNIX AND NOT WIN32)
wx_append_sources(NET_FILES NET_UNIX)
endif()
wx_add_library(net IS_BASE ${NET_FILES})
wx_add_library(wxnet IS_BASE ${NET_FILES})
if(WIN32)
wx_lib_link_libraries(net PRIVATE Ws2_32)
wx_lib_link_libraries(wxnet PRIVATE ws2_32)
if(wxUSE_WEBREQUEST_WINHTTP)
wx_lib_link_libraries(wxnet PRIVATE winhttp)
endif()
endif()
wx_finalize_lib(net)
if (wxUSE_WEBREQUEST_CURL)
wx_lib_include_directories(wxnet ${CURL_INCLUDE_DIRS})
wx_lib_link_libraries(wxnet PRIVATE ${CURL_LIBRARIES})
endif()

View file

@ -8,6 +8,16 @@
#############################################################################
if(wxUSE_LIBPNG STREQUAL "builtin")
# TODO: implement building libpng via its CMake file, using
# add_subdirectory or ExternalProject_Add
if(NOT MSVC)
set(PNG_EXTRA_SOURCES
src/png/mips/filter_msa_intrinsics.c
src/png/mips/mips_init.c
src/png/powerpc/filter_vsx_intrinsics.c
src/png/powerpc/powerpc_init.c
)
endif()
wx_add_builtin_library(wxpng
src/png/png.c
src/png/pngerror.c
@ -24,6 +34,12 @@ if(wxUSE_LIBPNG STREQUAL "builtin")
src/png/pngwrite.c
src/png/pngwtran.c
src/png/pngwutil.c
src/png/arm/arm_init.c
src/png/arm/filter_neon_intrinsics.c
src/png/arm/palette_neon_intrinsics.c
src/png/intel/intel_init.c
src/png/intel/filter_sse2_intrinsics.c
${PNG_EXTRA_SOURCES}
)
if(WIN32)
# define this to get rid of a warning about using POSIX lfind():
@ -32,6 +48,7 @@ if(wxUSE_LIBPNG STREQUAL "builtin")
# http://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=101278
target_compile_definitions(wxpng PRIVATE _CRT_NONSTDC_NO_WARNINGS)
endif()
target_compile_definitions(wxpng PRIVATE PNG_INTEL_SSE)
target_include_directories(wxpng PRIVATE ${ZLIB_INCLUDE_DIRS})
target_link_libraries(wxpng PRIVATE ${ZLIB_LIBRARIES})
set(PNG_LIBRARIES wxpng)

View file

@ -7,11 +7,6 @@
# Licence: wxWindows licence
#############################################################################
include(../../source_groups.cmake)
wx_append_sources(PROPGRID_FILES PROPGRID)
wx_add_library(propgrid ${PROPGRID_FILES})
wx_lib_link_libraries(propgrid PRIVATE adv)
wx_finalize_lib(propgrid)
wx_add_library(wxpropgrid ${PROPGRID_FILES})

Some files were not shown because too many files have changed in this diff Show more