Compare commits
305 Commits
soc-2020-x
...
temp-ui-bu
Author | SHA1 | Date | |
---|---|---|---|
0d2d4a6d4a | |||
cfc6f9eb18 | |||
156448ba4b | |||
88cc3f167f | |||
4ba9d7d71e | |||
5809dc6b5b | |||
a29686eeb3 | |||
e0c51b466f | |||
1b1129f82a | |||
8198dbb888 | |||
af88cc0701 | |||
7283e6fb73 | |||
91694b9b58 | |||
21fec95139 | |||
58909abc68 | |||
6e226275fd | |||
4f59e4bddc | |||
3dcaca93a0 | |||
9a1ff4445b | |||
3d35012a05 | |||
6f87a7ad9f | |||
8123b12006 | |||
![]() |
8fbfc150a0 | ||
8719ac990f | |||
cc3cb52b23 | |||
d693d77fed | |||
97c56b7628 | |||
96e460ed9b | |||
5f51438185 | |||
56af04d31f | |||
bc8168f4a2 | |||
45e6ca3661 | |||
5e6119ddca | |||
9696239762 | |||
77d71cc113 | |||
86f586636d | |||
30d3d4fbc1 | |||
![]() |
91be94d465 | ||
e4f400f0d6 | |||
ba20da7214 | |||
cb1096163a | |||
73a43c9d8a | |||
cb294c3a01 | |||
![]() |
8f34bf5ebb | ||
690d61cf78 | |||
574bd866c8 | |||
c4e606e386 | |||
![]() |
b313710c10 | ||
2d95a23aa6 | |||
769ec7ffe6 | |||
95fb3dc5ca | |||
![]() |
b2e0c8f902 | ||
d71cb229d0 | |||
3439cbcc69 | |||
82150f5641 | |||
8a8c3e0972 | |||
c872e87bd4 | |||
6158f56f52 | |||
d4804f00fb | |||
14dc1aecf0 | |||
![]() |
e9c4325515 | ||
c86fed79d5 | |||
85ddba475b | |||
675700d948 | |||
8c98684e22 | |||
c5b6b3d82f | |||
3570173d0f | |||
ad3838e1e0 | |||
9ea77f5232 | |||
3474b0968a | |||
59861db763 | |||
29ef7142dd | |||
2b7d39c3f1 | |||
5249a813f2 | |||
492235903d | |||
315ae005c3 | |||
f41eb8b2a9 | |||
c606044157 | |||
82343037f5 | |||
![]() |
c323f3e90a | ||
7aec56204b | |||
f3e724b93d | |||
854f73b4a2 | |||
d9b72a96b3 | |||
1b593edf1d | |||
38e9a349de | |||
cf3431e0e8 | |||
93f4f96818 | |||
a316d3b6c6 | |||
9118df1ecd | |||
d84dce85f3 | |||
9e644b98a6 | |||
e03d53874d | |||
fff12be945 | |||
927b1e9fa2 | |||
531a3f6c4e | |||
8fc7c3539a | |||
f3acfc97d9 | |||
b3d35d2039 | |||
055af3a489 | |||
adfde60831 | |||
2ca006f6c1 | |||
87062d4d67 | |||
ee351cb74d | |||
![]() |
f7d38e2e64 | ||
43d41675a4 | |||
56d7e39b92 | |||
40ad989059 | |||
754a663f68 | |||
c961bf8975 | |||
42f4233871 | |||
229fe01a15 | |||
1cf5c5085e | |||
f9aba4f6e1 | |||
396abbbfe7 | |||
a6b0a2356a | |||
f96afde3bd | |||
2c5c39d53c | |||
02ccc37144 | |||
85e11ca7fb | |||
e4a4dc5309 | |||
fc9f7e3e51 | |||
c3113724ed | |||
ec9ab00fcb | |||
de53178b26 | |||
7088422283 | |||
3562978c35 | |||
79cb0105cd | |||
8e5a4e3645 | |||
db907ea888 | |||
baf015be31 | |||
05fbbfec0b | |||
4a289081a5 | |||
ef7b804e26 | |||
006698167b | |||
7198e9d10e | |||
fce71a255c | |||
6390b530d0 | |||
6be8b6af40 | |||
d1b3da697d | |||
de947c5c50 | |||
3a522f7a7f | |||
1ccb997c6d | |||
deb76548c1 | |||
3ebe97c06b | |||
50e6d56e4e | |||
bf65820782 | |||
6faa765af8 | |||
1ae9960a15 | |||
304767dcd3 | |||
97be726f93 | |||
e4370eccdf | |||
0d3b5a5068 | |||
205cf0500d | |||
df28a68e70 | |||
f2ac432467 | |||
e818f1274b | |||
93d8373edb | |||
a4a814a180 | |||
f130cd1169 | |||
89baafc8e2 | |||
9538e38704 | |||
21c31885ed | |||
b1976d131c | |||
7bad5e0d18 | |||
16c7b6a7fe | |||
0e87a35f8e | |||
e8483f9bd7 | |||
f5919a7ad1 | |||
e1a10b5e53 | |||
5270462953 | |||
675fa2ee13 | |||
7fbbe71922 | |||
5f621a12c6 | |||
ca606bf551 | |||
701a9d3917 | |||
0dff6b2b4b | |||
164f40c50a | |||
d6762bedee | |||
f921ae4665 | |||
a9e0aeaf65 | |||
778f0aca52 | |||
03c2439d96 | |||
8d3b8bc835 | |||
52c2f296bc | |||
51af20b856 | |||
7f6530e5bd | |||
b38c04aebe | |||
3642cbb1d2 | |||
15ad4f6f1f | |||
9306037ed3 | |||
b016e7f258 | |||
f5eae90277 | |||
105ed22b95 | |||
c1386795a9 | |||
6791b88d28 | |||
9de5adc6a1 | |||
4b99df20d5 | |||
fbc3c1b24d | |||
862d79fffc | |||
452b896f2d | |||
b5c737469d | |||
![]() |
8356012068 | ||
10590b0500 | |||
e9bcf09819 | |||
3593dff147 | |||
d66009f179 | |||
f24920790d | |||
473d9507fa | |||
![]() |
a44299ccd1 | ||
30b52b6a4a | |||
2bb7378779 | |||
92f6f6d30e | |||
61eec61adb | |||
3f94f47113 | |||
1c4a695d70 | |||
14b77b37cb | |||
3c9cb62d82 | |||
33e6562a8a | |||
db5915d863 | |||
![]() |
b5e3451540 | ||
633e9cef8c | |||
057f3f2f3d | |||
e17befe368 | |||
977f89ef2d | |||
fe70605a2a | |||
040d7872e8 | |||
8f22feefbc | |||
144f780c71 | |||
83d6290800 | |||
21f150cc90 | |||
d406edf1ee | |||
b5dcf74636 | |||
396d0b5cd0 | |||
d1063575b5 | |||
0264f53e30 | |||
189eb2550d | |||
4f27e94146 | |||
422954b708 | |||
ed6bec8d1a | |||
89167dd304 | |||
![]() |
cc0d8ab036 | ||
![]() |
c442ff0017 | ||
f349a53c08 | |||
70d7805fa9 | |||
a3a6b71a9d | |||
0e308b07a0 | |||
ba6ed01058 | |||
8305dd9499 | |||
6a444830a3 | |||
6941e27f4a | |||
de097b28cc | |||
7cd2c1fd2e | |||
6141549fee | |||
6119f3cad1 | |||
901ee66ea1 | |||
006e850a84 | |||
03afffc96a | |||
06f3312b04 | |||
72b422c1e1 | |||
732434cb1f | |||
106e7654e8 | |||
251ae108e7 | |||
71683be4bb | |||
7e64f6cee4 | |||
83f8223543 | |||
a2c6c51647 | |||
cab9673bed | |||
2a0a2c1054 | |||
51f4bee5a5 | |||
f2b04302cd | |||
227e20f370 | |||
1ff1a2be9c | |||
201b4051ba | |||
81caec8c60 | |||
5628aaeee1 | |||
3785dc59d1 | |||
feaed44ef6 | |||
c565f16afb | |||
ded4b72002 | |||
627b294317 | |||
db24e289b2 | |||
de68880e79 | |||
1e7afea2bb | |||
9ea6228b07 | |||
eb8cbb6d7c | |||
cc63897c22 | |||
3305a94fa1 | |||
44b32e0e4a | |||
de21ddf821 | |||
cd579c4996 | |||
f379bb368b | |||
585c9c2f23 | |||
298d5eb669 | |||
9b416c66fb | |||
89dbb12c29 | |||
4de632b48b | |||
2400160bc4 | |||
a903f7c243 | |||
2a515fe612 | |||
190ef51fd5 | |||
51afd98b1d | |||
6609fa2996 | |||
b4f92bf7bc | |||
dc9df6540c |
@@ -17,7 +17,6 @@ Checks: >
|
||||
-readability-redundant-preprocessor,
|
||||
-readability-function-size,
|
||||
-readability-function-size,
|
||||
-readability-redundant-string-init,
|
||||
-readability-redundant-member-init,
|
||||
-readability-const-return-type,
|
||||
-readability-static-accessed-through-instance,
|
||||
|
@@ -214,6 +214,8 @@ if(WITH_GHOST_X11)
|
||||
option(WITH_GHOST_XDND "Enable drag'n'drop support on X11 using XDND protocol" ON)
|
||||
endif()
|
||||
|
||||
option(WITH_GMP "Use the gmp library for more accurate booleans" OFF)
|
||||
|
||||
# Misc...
|
||||
option(WITH_HEADLESS "Build without graphical support (renderfarm, server mode only)" OFF)
|
||||
mark_as_advanced(WITH_HEADLESS)
|
||||
|
@@ -117,6 +117,7 @@ if(WIN32)
|
||||
endif()
|
||||
|
||||
if(NOT WIN32 OR ENABLE_MINGW64)
|
||||
include(cmake/gmp.cmake)
|
||||
include(cmake/openjpeg.cmake)
|
||||
if(NOT WIN32 OR BUILD_MODE STREQUAL Release)
|
||||
if(WIN32)
|
||||
|
88
build_files/build_environment/cmake/gmp.cmake
Normal file
88
build_files/build_environment/cmake/gmp.cmake
Normal file
@@ -0,0 +1,88 @@
|
||||
# ***** BEGIN GPL LICENSE BLOCK *****
|
||||
#
|
||||
# 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, write to the Free Software Foundation,
|
||||
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
#
|
||||
# ***** END GPL LICENSE BLOCK *****
|
||||
|
||||
set(GMP_EXTRA_ARGS -enable-cxx)
|
||||
|
||||
if(WIN32)
|
||||
# Shared for windows because static libs will drag in a libgcc dependency.
|
||||
set(GMP_OPTIONS --disable-static --enable-shared --host=x86_64-w64-mingw32 --build=x86_64-w64-mingw32)
|
||||
else()
|
||||
set(GMP_OPTIONS --enable-static --disable-shared )
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(external_gmp
|
||||
URL ${GMP_URI}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH MD5=${GMP_HASH}
|
||||
PREFIX ${BUILD_DIR}/gmp
|
||||
CONFIGURE_COMMAND ${CONFIGURE_ENV_NO_PERL} && cd ${BUILD_DIR}/gmp/src/external_gmp/ && ${CONFIGURE_COMMAND} --prefix=${LIBDIR}/gmp ${GMP_OPTIONS} ${GMP_EXTRA_ARGS}
|
||||
BUILD_COMMAND ${CONFIGURE_ENV_NO_PERL} && cd ${BUILD_DIR}/gmp/src/external_gmp/ && make -j${MAKE_THREADS}
|
||||
INSTALL_COMMAND ${CONFIGURE_ENV_NO_PERL} && cd ${BUILD_DIR}/gmp/src/external_gmp/ && make install
|
||||
INSTALL_DIR ${LIBDIR}/gmp
|
||||
)
|
||||
|
||||
if(MSVC)
|
||||
set_target_properties(external_gmp PROPERTIES FOLDER Mingw)
|
||||
endif()
|
||||
|
||||
if(BUILD_MODE STREQUAL Release AND WIN32)
|
||||
ExternalProject_Add_Step(external_gmp after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-3.dll.def ${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.def
|
||||
COMMAND lib /def:${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.def /machine:x64 /out:${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/gmp/bin/libgmp-10.dll ${HARVEST_TARGET}/gmp/lib/libgmp-10.dll
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.lib ${HARVEST_TARGET}/gmp/lib/libgmp-10.lib
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/gmp/include ${HARVEST_TARGET}/gmp/include
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
|
||||
if(BUILD_MODE STREQUAL Debug AND WIN32)
|
||||
ExternalProject_Add_Step(external_gmp after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy ${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-3.dll.def ${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.def
|
||||
COMMAND lib /def:${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.def /machine:x64 /out:${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.lib
|
||||
DEPENDEES install
|
||||
)
|
||||
endif()
|
||||
|
||||
if(WIN32)
|
||||
# gmpxx is somewhat special, it builds on top of the C style gmp library but exposes C++ bindings
|
||||
# given the C++ ABI between MSVC and mingw is not compatible, we need to build the bindings
|
||||
# with MSVC, while GMP can only be build with mingw.
|
||||
ExternalProject_Add(external_gmpxx
|
||||
URL ${GMP_URI}
|
||||
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
||||
URL_HASH MD5=${GMP_HASH}
|
||||
PREFIX ${BUILD_DIR}/gmpxx
|
||||
PATCH_COMMAND COMMAND ${CMAKE_COMMAND} -E copy ${PATCH_DIR}/cmakelists_gmpxx.txt ${BUILD_DIR}/gmpxx/src/external_gmpxx/CMakeLists.txt &&
|
||||
${CMAKE_COMMAND} -E copy ${PATCH_DIR}/config_gmpxx.h ${BUILD_DIR}/gmpxx/src/external_gmpxx/config.h
|
||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/gmpxx ${DEFAULT_CMAKE_FLAGS} -DGMP_LIBRARY=${BUILD_DIR}/gmp/src/external_gmp/.libs/libgmp-10.lib -DGMP_INCLUDE_DIR=${BUILD_DIR}/gmp/src/external_gmp -DCMAKE_DEBUG_POSTFIX=_d
|
||||
INSTALL_DIR ${LIBDIR}/gmpxx
|
||||
)
|
||||
set_target_properties(external_gmpxx PROPERTIES FOLDER Mingw)
|
||||
|
||||
add_dependencies(
|
||||
external_gmpxx
|
||||
external_gmp
|
||||
)
|
||||
|
||||
ExternalProject_Add_Step(external_gmpxx after_install
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/gmpxx/ ${HARVEST_TARGET}/gmp
|
||||
DEPENDEES install
|
||||
)
|
||||
|
||||
endif()
|
@@ -89,6 +89,8 @@ harvest(freetype/include freetype/include "*.h")
|
||||
harvest(freetype/lib/libfreetype2ST.a freetype/lib/libfreetype.a)
|
||||
harvest(glew/include glew/include "*.h")
|
||||
harvest(glew/lib glew/lib "*.a")
|
||||
harvest(gmp/include gmp/include "*.h")
|
||||
harvest(gmp/lib gmp/lib "*.a")
|
||||
harvest(jemalloc/include jemalloc/include "*.h")
|
||||
harvest(jemalloc/lib jemalloc/lib "*.a")
|
||||
harvest(jpg/include jpeg/include "*.h")
|
||||
|
@@ -73,4 +73,3 @@ if(WIN32)
|
||||
external_flexbison
|
||||
)
|
||||
endif()
|
||||
|
||||
|
@@ -315,3 +315,7 @@ set(XR_OPENXR_SDK_HASH c6de63d2e0f9029aa58dfa97cad8ce07)
|
||||
set(ISPC_VERSION v1.13.0)
|
||||
set(ISPC_URI https://github.com/ispc/ispc/archive/${ISPC_VERSION}.tar.gz)
|
||||
set(ISPC_HASH 4bf5e8d0020c4b9980faa702c1a6f25f)
|
||||
|
||||
set(GMP_VERSION 6.2.0)
|
||||
set(GMP_URI https://gmplib.org/download/gmp/gmp-${GMP_VERSION}.tar.xz)
|
||||
set(GMP_HASH a325e3f09e6d91e62101e59f9bda3ec1)
|
||||
|
@@ -1030,7 +1030,7 @@ Those libraries should be available as packages in all recent distributions (opt
|
||||
* libjpeg, libpng, libtiff, [openjpeg2], [libopenal].
|
||||
* libx11, libxcursor, libxi, libxrandr, libxinerama (and other libx... as needed).
|
||||
* libsqlite3, libbz2, libssl, libfftw3, libxml2, libtinyxml, yasm, libyaml-cpp.
|
||||
* libsdl2, libglew, [libglewmx].\""
|
||||
* libsdl2, libglew, [libgmp], [libglewmx].\""
|
||||
|
||||
DEPS_SPECIFIC_INFO="\"BUILDABLE DEPENDENCIES:
|
||||
|
||||
@@ -3524,7 +3524,8 @@ install_DEB() {
|
||||
libxcursor-dev libxi-dev wget libsqlite3-dev libxrandr-dev libxinerama-dev \
|
||||
libbz2-dev libncurses5-dev libssl-dev liblzma-dev libreadline-dev \
|
||||
libopenal-dev libglew-dev yasm $THEORA_DEV $VORBIS_DEV $OGG_DEV \
|
||||
libsdl2-dev libfftw3-dev patch bzip2 libxml2-dev libtinyxml-dev libjemalloc-dev"
|
||||
libsdl2-dev libfftw3-dev patch bzip2 libxml2-dev libtinyxml-dev libjemalloc-dev \
|
||||
libgmp-dev"
|
||||
# libglewmx-dev (broken in deb testing currently...)
|
||||
|
||||
VORBIS_USE=true
|
||||
@@ -4175,7 +4176,7 @@ install_RPM() {
|
||||
libX11-devel libXi-devel libXcursor-devel libXrandr-devel libXinerama-devel \
|
||||
wget ncurses-devel readline-devel $OPENJPEG_DEV openal-soft-devel \
|
||||
glew-devel yasm $THEORA_DEV $VORBIS_DEV $OGG_DEV patch \
|
||||
libxml2-devel yaml-cpp-devel tinyxml-devel jemalloc-devel"
|
||||
libxml2-devel yaml-cpp-devel tinyxml-devel jemalloc-devel gmp-devel"
|
||||
|
||||
OPENJPEG_USE=true
|
||||
VORBIS_USE=true
|
||||
@@ -4735,7 +4736,7 @@ install_ARCH() {
|
||||
_packages="$BASE_DEVEL git cmake \
|
||||
libxi libxcursor libxrandr libxinerama glew libpng libtiff wget openal \
|
||||
$OPENJPEG_DEV $VORBIS_DEV $OGG_DEV $THEORA_DEV yasm sdl2 fftw \
|
||||
libxml2 yaml-cpp tinyxml python-requests jemalloc"
|
||||
libxml2 yaml-cpp tinyxml python-requests jemalloc gmp"
|
||||
|
||||
OPENJPEG_USE=true
|
||||
VORBIS_USE=true
|
||||
|
22
build_files/build_environment/patches/cmakelists_gmpxx.txt
Normal file
22
build_files/build_environment/patches/cmakelists_gmpxx.txt
Normal file
@@ -0,0 +1,22 @@
|
||||
cmake_minimum_required(VERSION 3.1)
|
||||
project(libgmpxx)
|
||||
|
||||
include_directories(. cxx ${GMP_INCLUDE_DIR})
|
||||
add_definitions(-D__GMP_WITHIN_GMPXX)
|
||||
add_library(libgmpxx SHARED
|
||||
cxx/dummy.cc
|
||||
cxx/isfuns.cc
|
||||
cxx/ismpf.cc
|
||||
cxx/ismpq.cc
|
||||
cxx/ismpz.cc
|
||||
cxx/ismpznw.cc
|
||||
cxx/limits.cc
|
||||
cxx/osdoprnti.cc
|
||||
cxx/osfuns.cc
|
||||
cxx/osmpf.cc
|
||||
cxx/osmpq.cc
|
||||
cxx/osmpz.cc
|
||||
)
|
||||
|
||||
target_link_libraries(libgmpxx ${GMP_LIBRARY})
|
||||
install(TARGETS libgmpxx DESTINATION lib)
|
668
build_files/build_environment/patches/config_gmpxx.h
Normal file
668
build_files/build_environment/patches/config_gmpxx.h
Normal file
@@ -0,0 +1,668 @@
|
||||
/* config.h. Generated from config.in by configure. */
|
||||
/* config.in. Generated from configure.ac by autoheader. */
|
||||
|
||||
/*
|
||||
|
||||
Copyright 1996-2020 Free Software Foundation, Inc.
|
||||
|
||||
This file is part of the GNU MP Library.
|
||||
|
||||
The GNU MP Library is free software; you can redistribute it and/or modify
|
||||
it under the terms of either:
|
||||
|
||||
* the GNU Lesser General Public License as published by the Free
|
||||
Software Foundation; either version 3 of the License, or (at your
|
||||
option) any later version.
|
||||
|
||||
or
|
||||
|
||||
* 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.
|
||||
|
||||
or both in parallel, as here.
|
||||
|
||||
The GNU MP Library 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 copies of the GNU General Public License and the
|
||||
GNU Lesser General Public License along with the GNU MP Library. If not,
|
||||
see https://www.gnu.org/licenses/.
|
||||
*/
|
||||
|
||||
/* Define if building universal (internal helper macro) */
|
||||
/* #undef AC_APPLE_UNIVERSAL_BUILD */
|
||||
|
||||
/* The gmp-mparam.h file (a string) the tune program should suggest updating.
|
||||
*/
|
||||
#define GMP_MPARAM_H_SUGGEST "./mpn/x86_64/coreisbr/gmp-mparam.h"
|
||||
|
||||
/* Define to 1 if you have the `alarm' function. */
|
||||
#define HAVE_ALARM 1
|
||||
|
||||
/* Define to 1 if alloca() works (via gmp-impl.h). */
|
||||
#define HAVE_ALLOCA 1
|
||||
|
||||
/* Define to 1 if you have <alloca.h> and it should be used (not on Ultrix).
|
||||
*/
|
||||
/* #undef HAVE_ALLOCA_H */
|
||||
|
||||
/* Define to 1 if the compiler accepts gcc style __attribute__ ((const)) */
|
||||
//#define HAVE_ATTRIBUTE_CONST 1
|
||||
|
||||
/* Define to 1 if the compiler accepts gcc style __attribute__ ((malloc)) */
|
||||
//#define HAVE_ATTRIBUTE_MALLOC 1
|
||||
|
||||
/* Define to 1 if the compiler accepts gcc style __attribute__ ((mode (XX)))
|
||||
*/
|
||||
//#define HAVE_ATTRIBUTE_MODE 1
|
||||
|
||||
/* Define to 1 if the compiler accepts gcc style __attribute__ ((noreturn)) */
|
||||
//#define HAVE_ATTRIBUTE_NORETURN 1
|
||||
|
||||
/* Define to 1 if you have the `attr_get' function. */
|
||||
/* #undef HAVE_ATTR_GET */
|
||||
|
||||
/* Define to 1 if tests/libtests has calling conventions checking for the CPU
|
||||
*/
|
||||
/* #undef HAVE_CALLING_CONVENTIONS */
|
||||
|
||||
/* Define to 1 if you have the `clock' function. */
|
||||
#define HAVE_CLOCK 1
|
||||
|
||||
/* Define to 1 if you have the `clock_gettime' function */
|
||||
/* #undef HAVE_CLOCK_GETTIME */
|
||||
|
||||
/* Define to 1 if you have the `cputime' function. */
|
||||
/* #undef HAVE_CPUTIME */
|
||||
|
||||
/* Define to 1 if you have the declaration of `fgetc', and to 0 if you don't.
|
||||
*/
|
||||
#define HAVE_DECL_FGETC 1
|
||||
|
||||
/* Define to 1 if you have the declaration of `fscanf', and to 0 if you don't.
|
||||
*/
|
||||
#define HAVE_DECL_FSCANF 1
|
||||
|
||||
/* Define to 1 if you have the declaration of `optarg', and to 0 if you don't.
|
||||
*/
|
||||
#define HAVE_DECL_OPTARG 1
|
||||
|
||||
/* Define to 1 if you have the declaration of `sys_errlist', and to 0 if you
|
||||
don't. */
|
||||
#define HAVE_DECL_SYS_ERRLIST 0
|
||||
|
||||
/* Define to 1 if you have the declaration of `sys_nerr', and to 0 if you
|
||||
don't. */
|
||||
#define HAVE_DECL_SYS_NERR 0
|
||||
|
||||
/* Define to 1 if you have the declaration of `ungetc', and to 0 if you don't.
|
||||
*/
|
||||
#define HAVE_DECL_UNGETC 1
|
||||
|
||||
/* Define to 1 if you have the declaration of `vfprintf', and to 0 if you
|
||||
don't. */
|
||||
#define HAVE_DECL_VFPRINTF 1
|
||||
|
||||
/* Define to 1 if you have the <dlfcn.h> header file. */
|
||||
/* #undef HAVE_DLFCN_H */
|
||||
|
||||
/* Define one of the following to 1 for the format of a `double'.
|
||||
If your format is not among these choices, or you don't know what it is,
|
||||
then leave all undefined.
|
||||
IEEE_LITTLE_SWAPPED means little endian, but with the two 4-byte halves
|
||||
swapped, as used by ARM CPUs in little endian mode. */
|
||||
/* #undef HAVE_DOUBLE_IEEE_BIG_ENDIAN */
|
||||
#define HAVE_DOUBLE_IEEE_LITTLE_ENDIAN 1
|
||||
/* #undef HAVE_DOUBLE_IEEE_LITTLE_SWAPPED */
|
||||
/* #undef HAVE_DOUBLE_VAX_D */
|
||||
/* #undef HAVE_DOUBLE_VAX_G */
|
||||
/* #undef HAVE_DOUBLE_CRAY_CFP */
|
||||
|
||||
/* Define to 1 if you have the <fcntl.h> header file. */
|
||||
#define HAVE_FCNTL_H 1
|
||||
|
||||
/* Define to 1 if you have the <float.h> header file. */
|
||||
#define HAVE_FLOAT_H 1
|
||||
|
||||
/* Define to 1 if you have the `getpagesize' function. */
|
||||
#define HAVE_GETPAGESIZE 1
|
||||
|
||||
/* Define to 1 if you have the `getrusage' function. */
|
||||
/* #undef HAVE_GETRUSAGE */
|
||||
|
||||
/* Define to 1 if you have the `getsysinfo' function. */
|
||||
/* #undef HAVE_GETSYSINFO */
|
||||
|
||||
/* Define to 1 if you have the `gettimeofday' function. */
|
||||
#define HAVE_GETTIMEOFDAY 1
|
||||
|
||||
/* Define to 1 if the compiler accepts gcc style __attribute__ ((visibility))
|
||||
and __attribute__ ((alias)) */
|
||||
#define HAVE_HIDDEN_ALIAS 1
|
||||
|
||||
/* Define one of these to 1 for the host CPU family.
|
||||
If your CPU is not in any of these families, leave all undefined.
|
||||
For an AMD64 chip, define "x86" in ABI=32, but not in ABI=64. */
|
||||
/* #undef HAVE_HOST_CPU_FAMILY_alpha */
|
||||
/* #undef HAVE_HOST_CPU_FAMILY_m68k */
|
||||
/* #undef HAVE_HOST_CPU_FAMILY_power */
|
||||
/* #undef HAVE_HOST_CPU_FAMILY_powerpc */
|
||||
/* #undef HAVE_HOST_CPU_FAMILY_x86 */
|
||||
#define HAVE_HOST_CPU_FAMILY_x86_64 1
|
||||
|
||||
/* Define one of the following to 1 for the host CPU, as per the output of
|
||||
./config.guess. If your CPU is not listed here, leave all undefined. */
|
||||
/* #undef HAVE_HOST_CPU_alphaev67 */
|
||||
/* #undef HAVE_HOST_CPU_alphaev68 */
|
||||
/* #undef HAVE_HOST_CPU_alphaev7 */
|
||||
/* #undef HAVE_HOST_CPU_m68020 */
|
||||
/* #undef HAVE_HOST_CPU_m68030 */
|
||||
/* #undef HAVE_HOST_CPU_m68040 */
|
||||
/* #undef HAVE_HOST_CPU_m68060 */
|
||||
/* #undef HAVE_HOST_CPU_m68360 */
|
||||
/* #undef HAVE_HOST_CPU_powerpc604 */
|
||||
/* #undef HAVE_HOST_CPU_powerpc604e */
|
||||
/* #undef HAVE_HOST_CPU_powerpc750 */
|
||||
/* #undef HAVE_HOST_CPU_powerpc7400 */
|
||||
/* #undef HAVE_HOST_CPU_supersparc */
|
||||
/* #undef HAVE_HOST_CPU_i386 */
|
||||
/* #undef HAVE_HOST_CPU_i586 */
|
||||
/* #undef HAVE_HOST_CPU_i686 */
|
||||
/* #undef HAVE_HOST_CPU_pentium */
|
||||
/* #undef HAVE_HOST_CPU_pentiummmx */
|
||||
/* #undef HAVE_HOST_CPU_pentiumpro */
|
||||
/* #undef HAVE_HOST_CPU_pentium2 */
|
||||
/* #undef HAVE_HOST_CPU_pentium3 */
|
||||
/* #undef HAVE_HOST_CPU_pentium4 */
|
||||
/* #undef HAVE_HOST_CPU_core2 */
|
||||
/* #undef HAVE_HOST_CPU_nehalem */
|
||||
/* #undef HAVE_HOST_CPU_westmere */
|
||||
/* #undef HAVE_HOST_CPU_sandybridge */
|
||||
#define HAVE_HOST_CPU_ivybridge 1
|
||||
/* #undef HAVE_HOST_CPU_haswell */
|
||||
/* #undef HAVE_HOST_CPU_broadwell */
|
||||
/* #undef HAVE_HOST_CPU_skylake */
|
||||
/* #undef HAVE_HOST_CPU_silvermont */
|
||||
/* #undef HAVE_HOST_CPU_goldmont */
|
||||
/* #undef HAVE_HOST_CPU_k8 */
|
||||
/* #undef HAVE_HOST_CPU_k10 */
|
||||
/* #undef HAVE_HOST_CPU_bulldozer */
|
||||
/* #undef HAVE_HOST_CPU_piledriver */
|
||||
/* #undef HAVE_HOST_CPU_steamroller */
|
||||
/* #undef HAVE_HOST_CPU_excavator */
|
||||
/* #undef HAVE_HOST_CPU_zen */
|
||||
/* #undef HAVE_HOST_CPU_bobcat */
|
||||
/* #undef HAVE_HOST_CPU_jaguar */
|
||||
/* #undef HAVE_HOST_CPU_s390_z900 */
|
||||
/* #undef HAVE_HOST_CPU_s390_z990 */
|
||||
/* #undef HAVE_HOST_CPU_s390_z9 */
|
||||
/* #undef HAVE_HOST_CPU_s390_z10 */
|
||||
/* #undef HAVE_HOST_CPU_s390_z196 */
|
||||
|
||||
/* Define to 1 iff we have a s390 with 64-bit registers. */
|
||||
/* #undef HAVE_HOST_CPU_s390_zarch */
|
||||
|
||||
/* Define to 1 if the system has the type `intmax_t'. */
|
||||
#define HAVE_INTMAX_T 1
|
||||
|
||||
/* Define to 1 if the system has the type `intptr_t'. */
|
||||
#define HAVE_INTPTR_T 1
|
||||
|
||||
/* Define to 1 if you have the <inttypes.h> header file. */
|
||||
#define HAVE_INTTYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the <invent.h> header file. */
|
||||
/* #undef HAVE_INVENT_H */
|
||||
|
||||
/* Define to 1 if you have the <langinfo.h> header file. */
|
||||
/* #undef HAVE_LANGINFO_H */
|
||||
|
||||
/* Define one of these to 1 for the endianness of `mp_limb_t'.
|
||||
If the endianness is not a simple big or little, or you don't know what
|
||||
it is, then leave both undefined. */
|
||||
/* #undef HAVE_LIMB_BIG_ENDIAN */
|
||||
#define HAVE_LIMB_LITTLE_ENDIAN 1
|
||||
|
||||
/* Define to 1 if you have the `localeconv' function. */
|
||||
#define HAVE_LOCALECONV 1
|
||||
|
||||
/* Define to 1 if you have the <locale.h> header file. */
|
||||
#define HAVE_LOCALE_H 1
|
||||
|
||||
/* Define to 1 if the system has the type `long double'. */
|
||||
#define HAVE_LONG_DOUBLE 1
|
||||
|
||||
/* Define to 1 if the system has the type `long long'. */
|
||||
#define HAVE_LONG_LONG 1
|
||||
|
||||
/* Define to 1 if you have the <machine/hal_sysinfo.h> header file. */
|
||||
/* #undef HAVE_MACHINE_HAL_SYSINFO_H */
|
||||
|
||||
/* Define to 1 if you have the <memory.h> header file. */
|
||||
#define HAVE_MEMORY_H 1
|
||||
|
||||
/* Define to 1 if you have the `memset' function. */
|
||||
#define HAVE_MEMSET 1
|
||||
|
||||
/* Define to 1 if you have the `mmap' function. */
|
||||
/* #undef HAVE_MMAP */
|
||||
|
||||
/* Define to 1 if you have the `mprotect' function. */
|
||||
#define HAVE_MPROTECT 1
|
||||
|
||||
/* Define to 1 each of the following for which a native (ie. CPU specific)
|
||||
implementation of the corresponding routine exists. */
|
||||
#define HAVE_NATIVE_mpn_add_n 1
|
||||
/* #undef HAVE_NATIVE_mpn_add_n_sub_n */
|
||||
#define HAVE_NATIVE_mpn_add_nc 1
|
||||
/* #undef HAVE_NATIVE_mpn_addaddmul_1msb0 */
|
||||
#define HAVE_NATIVE_mpn_addlsh1_n 1
|
||||
#define HAVE_NATIVE_mpn_addlsh2_n 1
|
||||
#define HAVE_NATIVE_mpn_addlsh_n 1
|
||||
#define HAVE_NATIVE_mpn_addlsh1_nc 1
|
||||
#define HAVE_NATIVE_mpn_addlsh2_nc 1
|
||||
#define HAVE_NATIVE_mpn_addlsh_nc 1
|
||||
/* #undef HAVE_NATIVE_mpn_addlsh1_n_ip1 */
|
||||
/* #undef HAVE_NATIVE_mpn_addlsh2_n_ip1 */
|
||||
/* #undef HAVE_NATIVE_mpn_addlsh_n_ip1 */
|
||||
/* #undef HAVE_NATIVE_mpn_addlsh1_nc_ip1 */
|
||||
/* #undef HAVE_NATIVE_mpn_addlsh2_nc_ip1 */
|
||||
/* #undef HAVE_NATIVE_mpn_addlsh_nc_ip1 */
|
||||
/* #undef HAVE_NATIVE_mpn_addlsh1_n_ip2 */
|
||||
/* #undef HAVE_NATIVE_mpn_addlsh2_n_ip2 */
|
||||
/* #undef HAVE_NATIVE_mpn_addlsh_n_ip2 */
|
||||
/* #undef HAVE_NATIVE_mpn_addlsh1_nc_ip2 */
|
||||
/* #undef HAVE_NATIVE_mpn_addlsh2_nc_ip2 */
|
||||
/* #undef HAVE_NATIVE_mpn_addlsh_nc_ip2 */
|
||||
/* #undef HAVE_NATIVE_mpn_addmul_1c */
|
||||
#define HAVE_NATIVE_mpn_addmul_2 1
|
||||
/* #undef HAVE_NATIVE_mpn_addmul_3 */
|
||||
/* #undef HAVE_NATIVE_mpn_addmul_4 */
|
||||
/* #undef HAVE_NATIVE_mpn_addmul_5 */
|
||||
/* #undef HAVE_NATIVE_mpn_addmul_6 */
|
||||
/* #undef HAVE_NATIVE_mpn_addmul_7 */
|
||||
/* #undef HAVE_NATIVE_mpn_addmul_8 */
|
||||
/* #undef HAVE_NATIVE_mpn_addmul_2s */
|
||||
#define HAVE_NATIVE_mpn_and_n 1
|
||||
#define HAVE_NATIVE_mpn_andn_n 1
|
||||
#define HAVE_NATIVE_mpn_bdiv_dbm1c 1
|
||||
#define HAVE_NATIVE_mpn_bdiv_q_1 1
|
||||
#define HAVE_NATIVE_mpn_pi1_bdiv_q_1 1
|
||||
#define HAVE_NATIVE_mpn_cnd_add_n 1
|
||||
#define HAVE_NATIVE_mpn_cnd_sub_n 1
|
||||
#define HAVE_NATIVE_mpn_com 1
|
||||
#define HAVE_NATIVE_mpn_copyd 1
|
||||
#define HAVE_NATIVE_mpn_copyi 1
|
||||
/* #undef HAVE_NATIVE_mpn_div_qr_1n_pi1 */
|
||||
/* #undef HAVE_NATIVE_mpn_div_qr_2 */
|
||||
#define HAVE_NATIVE_mpn_divexact_1 1
|
||||
/* #undef HAVE_NATIVE_mpn_divexact_by3c */
|
||||
#define HAVE_NATIVE_mpn_divrem_1 1
|
||||
/* #undef HAVE_NATIVE_mpn_divrem_1c */
|
||||
#define HAVE_NATIVE_mpn_divrem_2 1
|
||||
/* #undef HAVE_NATIVE_mpn_gcd_1 */
|
||||
#define HAVE_NATIVE_mpn_gcd_11 1
|
||||
/* #undef HAVE_NATIVE_mpn_gcd_22 */
|
||||
#define HAVE_NATIVE_mpn_hamdist 1
|
||||
#define HAVE_NATIVE_mpn_invert_limb 1
|
||||
#define HAVE_NATIVE_mpn_ior_n 1
|
||||
#define HAVE_NATIVE_mpn_iorn_n 1
|
||||
#define HAVE_NATIVE_mpn_lshift 1
|
||||
#define HAVE_NATIVE_mpn_lshiftc 1
|
||||
/* #undef HAVE_NATIVE_mpn_lshsub_n */
|
||||
/* #undef HAVE_NATIVE_mpn_mod_1 */
|
||||
#define HAVE_NATIVE_mpn_mod_1_1p 1
|
||||
/* #undef HAVE_NATIVE_mpn_mod_1c */
|
||||
#define HAVE_NATIVE_mpn_mod_1s_2p 1
|
||||
#define HAVE_NATIVE_mpn_mod_1s_4p 1
|
||||
#define HAVE_NATIVE_mpn_mod_34lsub1 1
|
||||
#define HAVE_NATIVE_mpn_modexact_1_odd 1
|
||||
#define HAVE_NATIVE_mpn_modexact_1c_odd 1
|
||||
#define HAVE_NATIVE_mpn_mul_1 1
|
||||
#define HAVE_NATIVE_mpn_mul_1c 1
|
||||
#define HAVE_NATIVE_mpn_mul_2 1
|
||||
/* #undef HAVE_NATIVE_mpn_mul_3 */
|
||||
/* #undef HAVE_NATIVE_mpn_mul_4 */
|
||||
/* #undef HAVE_NATIVE_mpn_mul_5 */
|
||||
/* #undef HAVE_NATIVE_mpn_mul_6 */
|
||||
#define HAVE_NATIVE_mpn_mul_basecase 1
|
||||
#define HAVE_NATIVE_mpn_mullo_basecase 1
|
||||
#define HAVE_NATIVE_mpn_nand_n 1
|
||||
#define HAVE_NATIVE_mpn_nior_n 1
|
||||
#define HAVE_NATIVE_mpn_popcount 1
|
||||
#define HAVE_NATIVE_mpn_preinv_divrem_1 1
|
||||
/* #undef HAVE_NATIVE_mpn_preinv_mod_1 */
|
||||
#define HAVE_NATIVE_mpn_redc_1 1
|
||||
/* #undef HAVE_NATIVE_mpn_redc_2 */
|
||||
#define HAVE_NATIVE_mpn_rsblsh1_n 1
|
||||
#define HAVE_NATIVE_mpn_rsblsh2_n 1
|
||||
#define HAVE_NATIVE_mpn_rsblsh_n 1
|
||||
#define HAVE_NATIVE_mpn_rsblsh1_nc 1
|
||||
/* #undef HAVE_NATIVE_mpn_rsblsh2_nc */
|
||||
/* #undef HAVE_NATIVE_mpn_rsblsh_nc */
|
||||
#define HAVE_NATIVE_mpn_rsh1add_n 1
|
||||
#define HAVE_NATIVE_mpn_rsh1add_nc 1
|
||||
#define HAVE_NATIVE_mpn_rsh1sub_n 1
|
||||
#define HAVE_NATIVE_mpn_rsh1sub_nc 1
|
||||
#define HAVE_NATIVE_mpn_rshift 1
|
||||
/* #undef HAVE_NATIVE_mpn_sbpi1_bdiv_r */
|
||||
#define HAVE_NATIVE_mpn_sqr_basecase 1
|
||||
/* #undef HAVE_NATIVE_mpn_sqr_diagonal */
|
||||
#define HAVE_NATIVE_mpn_sqr_diag_addlsh1 1
|
||||
#define HAVE_NATIVE_mpn_sub_n 1
|
||||
#define HAVE_NATIVE_mpn_sub_nc 1
|
||||
#define HAVE_NATIVE_mpn_sublsh1_n 1
|
||||
#define HAVE_NATIVE_mpn_sublsh2_n 1
|
||||
/* #undef HAVE_NATIVE_mpn_sublsh_n */
|
||||
/* #undef HAVE_NATIVE_mpn_sublsh1_nc */
|
||||
/* #undef HAVE_NATIVE_mpn_sublsh2_nc */
|
||||
/* #undef HAVE_NATIVE_mpn_sublsh_nc */
|
||||
/* #undef HAVE_NATIVE_mpn_sublsh1_n_ip1 */
|
||||
/* #undef HAVE_NATIVE_mpn_sublsh2_n_ip1 */
|
||||
/* #undef HAVE_NATIVE_mpn_sublsh_n_ip1 */
|
||||
/* #undef HAVE_NATIVE_mpn_sublsh1_nc_ip1 */
|
||||
/* #undef HAVE_NATIVE_mpn_sublsh2_nc_ip1 */
|
||||
/* #undef HAVE_NATIVE_mpn_sublsh_nc_ip1 */
|
||||
/* #undef HAVE_NATIVE_mpn_submul_1c */
|
||||
/* #undef HAVE_NATIVE_mpn_tabselect */
|
||||
/* #undef HAVE_NATIVE_mpn_udiv_qrnnd */
|
||||
/* #undef HAVE_NATIVE_mpn_udiv_qrnnd_r */
|
||||
/* #undef HAVE_NATIVE_mpn_umul_ppmm */
|
||||
/* #undef HAVE_NATIVE_mpn_umul_ppmm_r */
|
||||
#define HAVE_NATIVE_mpn_xor_n 1
|
||||
#define HAVE_NATIVE_mpn_xnor_n 1
|
||||
|
||||
/* Define to 1 if you have the `nl_langinfo' function. */
|
||||
/* #undef HAVE_NL_LANGINFO */
|
||||
|
||||
/* Define to 1 if you have the <nl_types.h> header file. */
|
||||
/* #undef HAVE_NL_TYPES_H */
|
||||
|
||||
/* Define to 1 if you have the `obstack_vprintf' function. */
|
||||
/* #undef HAVE_OBSTACK_VPRINTF */
|
||||
|
||||
/* Define to 1 if you have the `popen' function. */
|
||||
#define HAVE_POPEN 1
|
||||
|
||||
/* Define to 1 if you have the `processor_info' function. */
|
||||
/* #undef HAVE_PROCESSOR_INFO */
|
||||
|
||||
/* Define to 1 if <sys/pstat.h> `struct pst_processor' exists and contains
|
||||
`psp_iticksperclktick'. */
|
||||
/* #undef HAVE_PSP_ITICKSPERCLKTICK */
|
||||
|
||||
/* Define to 1 if you have the `pstat_getprocessor' function. */
|
||||
/* #undef HAVE_PSTAT_GETPROCESSOR */
|
||||
|
||||
/* Define to 1 if the system has the type `ptrdiff_t'. */
|
||||
#define HAVE_PTRDIFF_T 1
|
||||
|
||||
/* Define to 1 if the system has the type `quad_t'. */
|
||||
/* #undef HAVE_QUAD_T */
|
||||
|
||||
/* Define to 1 if you have the `raise' function. */
|
||||
#define HAVE_RAISE 1
|
||||
|
||||
/* Define to 1 if you have the `read_real_time' function. */
|
||||
/* #undef HAVE_READ_REAL_TIME */
|
||||
|
||||
/* Define to 1 if you have the `sigaction' function. */
|
||||
/* #undef HAVE_SIGACTION */
|
||||
|
||||
/* Define to 1 if you have the `sigaltstack' function. */
|
||||
/* #undef HAVE_SIGALTSTACK */
|
||||
|
||||
/* Define to 1 if you have the `sigstack' function. */
|
||||
/* #undef HAVE_SIGSTACK */
|
||||
|
||||
/* Tune directory speed_cyclecounter, undef=none, 1=32bits, 2=64bits) */
|
||||
#define HAVE_SPEED_CYCLECOUNTER 2
|
||||
|
||||
/* Define to 1 if you have the <sstream> header file. */
|
||||
#define HAVE_SSTREAM 1
|
||||
|
||||
/* Define to 1 if the system has the type `stack_t'. */
|
||||
/* #undef HAVE_STACK_T */
|
||||
|
||||
/* Define to 1 if you have the <stdint.h> header file. */
|
||||
#define HAVE_STDINT_H 1
|
||||
|
||||
/* Define to 1 if you have the <stdlib.h> header file. */
|
||||
#define HAVE_STDLIB_H 1
|
||||
|
||||
/* Define to 1 if the system has the type `std::locale'. */
|
||||
#define HAVE_STD__LOCALE 1
|
||||
|
||||
/* Define to 1 if you have the `strchr' function. */
|
||||
#define HAVE_STRCHR 1
|
||||
|
||||
/* Define to 1 if you have the `strerror' function. */
|
||||
#define HAVE_STRERROR 1
|
||||
|
||||
/* Define to 1 if you have the <strings.h> header file. */
|
||||
#define HAVE_STRINGS_H 1
|
||||
|
||||
/* Define to 1 if you have the <string.h> header file. */
|
||||
#define HAVE_STRING_H 1
|
||||
|
||||
/* Define to 1 if you have the `strnlen' function. */
|
||||
#define HAVE_STRNLEN 1
|
||||
|
||||
/* Define to 1 if you have the `strtol' function. */
|
||||
#define HAVE_STRTOL 1
|
||||
|
||||
/* Define to 1 if you have the `strtoul' function. */
|
||||
#define HAVE_STRTOUL 1
|
||||
|
||||
/* Define to 1 if you have the `sysconf' function. */
|
||||
/* #undef HAVE_SYSCONF */
|
||||
|
||||
/* Define to 1 if you have the `sysctl' function. */
|
||||
/* #undef HAVE_SYSCTL */
|
||||
|
||||
/* Define to 1 if you have the `sysctlbyname' function. */
|
||||
/* #undef HAVE_SYSCTLBYNAME */
|
||||
|
||||
/* Define to 1 if you have the `syssgi' function. */
|
||||
/* #undef HAVE_SYSSGI */
|
||||
|
||||
/* Define to 1 if you have the <sys/attributes.h> header file. */
|
||||
/* #undef HAVE_SYS_ATTRIBUTES_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/iograph.h> header file. */
|
||||
/* #undef HAVE_SYS_IOGRAPH_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/mman.h> header file. */
|
||||
/* #undef HAVE_SYS_MMAN_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/param.h> header file. */
|
||||
#define HAVE_SYS_PARAM_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/processor.h> header file. */
|
||||
/* #undef HAVE_SYS_PROCESSOR_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/pstat.h> header file. */
|
||||
/* #undef HAVE_SYS_PSTAT_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/resource.h> header file. */
|
||||
/* #undef HAVE_SYS_RESOURCE_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/stat.h> header file. */
|
||||
#define HAVE_SYS_STAT_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/sysctl.h> header file. */
|
||||
/* #undef HAVE_SYS_SYSCTL_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/sysinfo.h> header file. */
|
||||
/* #undef HAVE_SYS_SYSINFO_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/syssgi.h> header file. */
|
||||
/* #undef HAVE_SYS_SYSSGI_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/systemcfg.h> header file. */
|
||||
/* #undef HAVE_SYS_SYSTEMCFG_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/times.h> header file. */
|
||||
/* #undef HAVE_SYS_TIMES_H */
|
||||
|
||||
/* Define to 1 if you have the <sys/time.h> header file. */
|
||||
#define HAVE_SYS_TIME_H 1
|
||||
|
||||
/* Define to 1 if you have the <sys/types.h> header file. */
|
||||
#define HAVE_SYS_TYPES_H 1
|
||||
|
||||
/* Define to 1 if you have the `times' function. */
|
||||
/* #undef HAVE_TIMES */
|
||||
|
||||
/* Define to 1 if the system has the type `uint_least32_t'. */
|
||||
#define HAVE_UINT_LEAST32_T 1
|
||||
|
||||
/* Define to 1 if you have the <unistd.h> header file. */
|
||||
#define HAVE_UNISTD_H 1
|
||||
|
||||
/* Define to 1 if you have the `vsnprintf' function and it works properly. */
|
||||
/* #undef HAVE_VSNPRINTF */
|
||||
|
||||
/* Define to 1 for Windos/64 */
|
||||
#define HOST_DOS64 1
|
||||
|
||||
/* Assembler local label prefix */
|
||||
#define LSYM_PREFIX "L"
|
||||
|
||||
/* Define to the sub-directory where libtool stores uninstalled libraries. */
|
||||
#define LT_OBJDIR ".libs/"
|
||||
|
||||
/* Define to 1 to disable the use of inline assembly */
|
||||
/* #undef NO_ASM */
|
||||
|
||||
/* Name of package */
|
||||
#define PACKAGE "gmp"
|
||||
|
||||
/* Define to the address where bug reports for this package should be sent. */
|
||||
#define PACKAGE_BUGREPORT "gmp-bugs@gmplib.org, see https://gmplib.org/manual/Reporting-Bugs.html"
|
||||
|
||||
/* Define to the full name of this package. */
|
||||
#define PACKAGE_NAME "GNU MP"
|
||||
|
||||
/* Define to the full name and version of this package. */
|
||||
#define PACKAGE_STRING "GNU MP 6.2.0"
|
||||
|
||||
/* Define to the one symbol short name of this package. */
|
||||
#define PACKAGE_TARNAME "gmp"
|
||||
|
||||
/* Define to the home page for this package. */
|
||||
#define PACKAGE_URL "http://www.gnu.org/software/gmp/"
|
||||
|
||||
/* Define to the version of this package. */
|
||||
#define PACKAGE_VERSION "6.2.0"
|
||||
|
||||
/* Define as the return type of signal handlers (`int' or `void'). */
|
||||
#define RETSIGTYPE void
|
||||
|
||||
/* The size of `mp_limb_t', as computed by sizeof. */
|
||||
#define SIZEOF_MP_LIMB_T 8
|
||||
|
||||
/* The size of `unsigned', as computed by sizeof. */
|
||||
#define SIZEOF_UNSIGNED 4
|
||||
|
||||
/* The size of `unsigned long', as computed by sizeof. */
|
||||
#define SIZEOF_UNSIGNED_LONG 4
|
||||
|
||||
/* The size of `unsigned short', as computed by sizeof. */
|
||||
#define SIZEOF_UNSIGNED_SHORT 2
|
||||
|
||||
/* The size of `void *', as computed by sizeof. */
|
||||
#define SIZEOF_VOID_P 8
|
||||
|
||||
/* Define to 1 if sscanf requires writable inputs */
|
||||
/* #undef SSCANF_WRITABLE_INPUT */
|
||||
|
||||
/* Define to 1 if you have the ANSI C header files. */
|
||||
#define STDC_HEADERS 1
|
||||
|
||||
/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
|
||||
#define TIME_WITH_SYS_TIME 1
|
||||
|
||||
/* Maximum size the tune program can test for SQR_TOOM2_THRESHOLD */
|
||||
/* #undef TUNE_SQR_TOOM2_MAX */
|
||||
|
||||
/* Version number of package */
|
||||
#define VERSION "6.2.0"
|
||||
|
||||
/* Define to 1 to enable ASSERT checking, per --enable-assert */
|
||||
/* #undef WANT_ASSERT */
|
||||
|
||||
/* Define to 1 to enable GMP_CPU_TYPE faking cpuid, per --enable-fake-cpuid */
|
||||
/* #undef WANT_FAKE_CPUID */
|
||||
|
||||
/* Define to 1 when building a fat binary. */
|
||||
/* #undef WANT_FAT_BINARY */
|
||||
|
||||
/* Define to 1 to enable FFTs for multiplication, per --enable-fft */
|
||||
#define WANT_FFT 1
|
||||
|
||||
/* Define to 1 to enable old mpn_mul_fft_full for multiplication, per
|
||||
--enable-old-fft-full */
|
||||
/* #undef WANT_OLD_FFT_FULL */
|
||||
|
||||
/* Define to 1 if --enable-profiling=gprof */
|
||||
/* #undef WANT_PROFILING_GPROF */
|
||||
|
||||
/* Define to 1 if --enable-profiling=instrument */
|
||||
/* #undef WANT_PROFILING_INSTRUMENT */
|
||||
|
||||
/* Define to 1 if --enable-profiling=prof */
|
||||
/* #undef WANT_PROFILING_PROF */
|
||||
|
||||
/* Define one of these to 1 for the desired temporary memory allocation
|
||||
method, per --enable-alloca. */
|
||||
#define WANT_TMP_ALLOCA 1
|
||||
/* #undef WANT_TMP_REENTRANT */
|
||||
/* #undef WANT_TMP_NOTREENTRANT */
|
||||
/* #undef WANT_TMP_DEBUG */
|
||||
|
||||
/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
|
||||
significant byte first (like Motorola and SPARC, unlike Intel). */
|
||||
#if defined AC_APPLE_UNIVERSAL_BUILD
|
||||
# if defined __BIG_ENDIAN__
|
||||
# define WORDS_BIGENDIAN 1
|
||||
# endif
|
||||
#else
|
||||
# ifndef WORDS_BIGENDIAN
|
||||
/* # undef WORDS_BIGENDIAN */
|
||||
# endif
|
||||
#endif
|
||||
|
||||
/* Define to 1 if the assembler understands the mulx instruction */
|
||||
/* #undef X86_ASM_MULX */
|
||||
|
||||
/* Define to 1 if `lex' declares `yytext' as a `char *' by default, not a
|
||||
`char[]'. */
|
||||
/* #undef YYTEXT_POINTER */
|
||||
|
||||
/* Define to `__inline__' or `__inline' if that's what the C compiler
|
||||
calls it, or to nothing if 'inline' is not supported under any name. */
|
||||
#ifndef __cplusplus
|
||||
/* #undef inline */
|
||||
#endif
|
||||
|
||||
/* Define to the equivalent of the C99 'restrict' keyword, or to
|
||||
nothing if this is not supported. Do not define if restrict is
|
||||
supported directly. */
|
||||
#define restrict __restrict
|
||||
/* Work around a bug in Sun C++: it does not support _Restrict or
|
||||
__restrict__, even though the corresponding Sun C compiler ends up with
|
||||
"#define restrict _Restrict" or "#define restrict __restrict__" in the
|
||||
previous line. Perhaps some future version of Sun C++ will work with
|
||||
restrict; if so, hopefully it defines __RESTRICT like Sun C does. */
|
||||
#if defined __SUNPRO_CC && !defined __RESTRICT
|
||||
# define _Restrict
|
||||
# define __restrict__
|
||||
#endif
|
||||
|
||||
/* Define to empty if the keyword `volatile' does not work. Warning: valid
|
||||
code using `volatile' can become incorrect without. Disable with care. */
|
||||
/* #undef volatile */
|
@@ -33,10 +33,11 @@ def is_tool(name):
|
||||
return which(name) is not None
|
||||
|
||||
class Builder:
|
||||
def __init__(self, name, branch):
|
||||
def __init__(self, name, branch, codesign):
|
||||
self.name = name
|
||||
self.branch = branch
|
||||
self.is_release_branch = re.match("^blender-v(.*)-release$", branch) is not None
|
||||
self.codesign = codesign
|
||||
|
||||
# Buildbot runs from build/ directory
|
||||
self.blender_dir = os.path.abspath(os.path.join('..', 'blender.git'))
|
||||
@@ -67,8 +68,9 @@ def create_builder_from_arguments():
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('builder_name')
|
||||
parser.add_argument('branch', default='master', nargs='?')
|
||||
parser.add_argument("--codesign", action="store_true")
|
||||
args = parser.parse_args()
|
||||
return Builder(args.builder_name, args.branch)
|
||||
return Builder(args.builder_name, args.branch, args.codesign)
|
||||
|
||||
|
||||
class VersionInfo:
|
||||
|
@@ -82,6 +82,10 @@ def create_argument_parser():
|
||||
type=Path,
|
||||
help="Optional path to applescript to set up folder looks of DMG."
|
||||
"If not provided default Blender's one is used.")
|
||||
parser.add_argument(
|
||||
'--codesign',
|
||||
action="store_true",
|
||||
help="Code sign and notarize DMG contents.")
|
||||
return parser
|
||||
|
||||
|
||||
@@ -395,7 +399,8 @@ def create_final_dmg(app_bundles: List[Path],
|
||||
dmg_filepath: Path,
|
||||
background_image_filepath: Path,
|
||||
volume_name: str,
|
||||
applescript: Path) -> None:
|
||||
applescript: Path,
|
||||
codesign: bool) -> None:
|
||||
"""
|
||||
Create DMG with all app bundles
|
||||
|
||||
@@ -421,7 +426,8 @@ def create_final_dmg(app_bundles: List[Path],
|
||||
#
|
||||
# This allows to recurs into the content of bundles without worrying about
|
||||
# possible interfereice of Application symlink.
|
||||
codesign_app_bundles_in_dmg(mount_directory)
|
||||
if codesign:
|
||||
codesign_app_bundles_in_dmg(mount_directory)
|
||||
|
||||
copy_background_if_needed(background_image_filepath, mount_directory)
|
||||
create_applications_link(mount_directory)
|
||||
@@ -434,7 +440,8 @@ def create_final_dmg(app_bundles: List[Path],
|
||||
compress_dmg(writable_dmg_filepath, dmg_filepath)
|
||||
writable_dmg_filepath.unlink()
|
||||
|
||||
codesign_and_notarize_dmg(dmg_filepath)
|
||||
if codesign:
|
||||
codesign_and_notarize_dmg(dmg_filepath)
|
||||
|
||||
|
||||
def ensure_dmg_extension(filepath: Path) -> Path:
|
||||
@@ -521,6 +528,7 @@ def main():
|
||||
source_dir = args.source_dir.absolute()
|
||||
background_image_filepath = get_background_image(args.background_image)
|
||||
applescript = get_applescript(args.applescript)
|
||||
codesign = args.codesign
|
||||
|
||||
app_bundles = collect_and_log_app_bundles(source_dir)
|
||||
if not app_bundles:
|
||||
@@ -535,7 +543,8 @@ def main():
|
||||
dmg_filepath,
|
||||
background_image_filepath,
|
||||
volume_name,
|
||||
applescript)
|
||||
applescript,
|
||||
codesign)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
@@ -24,7 +24,7 @@ import shutil
|
||||
import buildbot_utils
|
||||
|
||||
def get_cmake_options(builder):
|
||||
post_install_script = os.path.join(
|
||||
codesign_script = os.path.join(
|
||||
builder.blender_dir, 'build_files', 'buildbot', 'worker_codesign.cmake')
|
||||
|
||||
config_file = "build_files/cmake/config/blender_release.cmake"
|
||||
@@ -36,7 +36,8 @@ def get_cmake_options(builder):
|
||||
options.append('-DCMAKE_OSX_DEPLOYMENT_TARGET=10.9')
|
||||
elif builder.platform == 'win':
|
||||
options.extend(['-G', 'Visual Studio 16 2019', '-A', 'x64'])
|
||||
options.extend(['-DPOSTINSTALL_SCRIPT:PATH=' + post_install_script])
|
||||
if builder.codesign:
|
||||
options.extend(['-DPOSTINSTALL_SCRIPT:PATH=' + codesign_script])
|
||||
elif builder.platform == 'linux':
|
||||
config_file = "build_files/buildbot/config/blender_linux.cmake"
|
||||
|
||||
|
@@ -117,6 +117,8 @@ def pack_mac(builder):
|
||||
if info.is_development_build:
|
||||
background_image = os.path.join(release_dir, 'buildbot', 'background.tif')
|
||||
command += ['--background-image', background_image]
|
||||
if builder.codesign:
|
||||
command += ['--codesign']
|
||||
command += [builder.install_dir]
|
||||
buildbot_utils.call(command)
|
||||
|
||||
@@ -150,7 +152,8 @@ def pack_win(builder):
|
||||
|
||||
package_filename = package_name + '.msi'
|
||||
package_filepath = os.path.join(builder.build_dir, package_filename)
|
||||
sign_file_or_directory(package_filepath)
|
||||
if builder.codesign:
|
||||
sign_file_or_directory(package_filepath)
|
||||
|
||||
package_files += [(package_filepath, package_filename)]
|
||||
|
||||
|
96
build_files/cmake/Modules/FindGMP.cmake
Normal file
96
build_files/cmake/Modules/FindGMP.cmake
Normal file
@@ -0,0 +1,96 @@
|
||||
# - Find GMP library
|
||||
# Find the native GMP includes and library
|
||||
# This module defines
|
||||
# GMP_INCLUDE_DIRS, where to find gmp.h, Set when
|
||||
# GMP_INCLUDE_DIR is found.
|
||||
# GMP_LIBRARIES, libraries to link against to use GMP.
|
||||
# GMP_ROOT_DIR, The base directory to search for GMP.
|
||||
# This can also be an environment variable.
|
||||
# GMP_FOUND, If false, do not try to use GMP.
|
||||
#
|
||||
# also defined, but not for general use are
|
||||
# GMP_LIBRARY, where to find the GMP library.
|
||||
|
||||
#=============================================================================
|
||||
# Copyright 2011 Blender Foundation.
|
||||
#
|
||||
# Distributed under the OSI-approved BSD License (the "License");
|
||||
# see accompanying file Copyright.txt for details.
|
||||
#
|
||||
# This software is distributed WITHOUT ANY WARRANTY; without even the
|
||||
# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
|
||||
# See the License for more information.
|
||||
#=============================================================================
|
||||
|
||||
# If GMP_ROOT_DIR was defined in the environment, use it.
|
||||
IF(NOT GMP_ROOT_DIR AND NOT $ENV{GMP_ROOT_DIR} STREQUAL "")
|
||||
SET(GMP_ROOT_DIR $ENV{GMP_ROOT_DIR})
|
||||
ENDIF()
|
||||
|
||||
SET(_gmp_SEARCH_DIRS
|
||||
${GMP_ROOT_DIR}
|
||||
/opt/lib/gmp
|
||||
)
|
||||
|
||||
FIND_PATH(GMP_INCLUDE_DIR
|
||||
NAMES
|
||||
gmp.h
|
||||
HINTS
|
||||
${_gmp_SEARCH_DIRS}
|
||||
PATH_SUFFIXES
|
||||
include/gmp
|
||||
)
|
||||
|
||||
FIND_PATH(GMPXX_INCLUDE_DIR
|
||||
NAMES
|
||||
gmpxx.h
|
||||
HINTS
|
||||
${_gmp_SEARCH_DIRS}
|
||||
PATH_SUFFIXES
|
||||
include/gmp
|
||||
)
|
||||
|
||||
FIND_LIBRARY(GMP_LIBRARY
|
||||
NAMES
|
||||
gmp
|
||||
HINTS
|
||||
${_gmp_SEARCH_DIRS}
|
||||
PATH_SUFFIXES
|
||||
lib64 lib
|
||||
)
|
||||
|
||||
FIND_LIBRARY(GMPXX_LIBRARY
|
||||
NAMES
|
||||
gmpxx
|
||||
HINTS
|
||||
${_gmp_SEARCH_DIRS}
|
||||
PATH_SUFFIXES
|
||||
lib64 lib
|
||||
)
|
||||
|
||||
if(GMP_INCLUDE_DIR)
|
||||
SET(_version_regex "^#define[ \t]+__GNU_MP_VERSION[ \t]+\"([^\"]+)\".*")
|
||||
file(STRINGS "${GMP_INCLUDE_DIR}/gmp.h"
|
||||
GMP_VERSION REGEX "${_version_regex}")
|
||||
string(REGEX REPLACE "${_version_regex}" "\\1"
|
||||
GMP_VERSION "${GMP_VERSION}")
|
||||
unset(_version_regex)
|
||||
endif()
|
||||
|
||||
# handle the QUIETLY and REQUIRED arguments and set GMP_FOUND to TRUE if
|
||||
# all listed variables are TRUE
|
||||
INCLUDE(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GMP DEFAULT_MSG
|
||||
GMP_LIBRARY GMPXX_LIBRARY GMP_INCLUDE_DIR GMPXX_INCLUDE_DIR)
|
||||
|
||||
IF(GMP_FOUND)
|
||||
SET(GMP_LIBRARIES ${GMP_LIBRARY} ${GMPXX_LIBRARY})
|
||||
SET(GMP_INCLUDE_DIRS ${GMP_INCLUDE_DIR} ${GMPXX_INCLUDE_DIR})
|
||||
ENDIF(GMP_FOUND)
|
||||
|
||||
MARK_AS_ADVANCED(
|
||||
GMP_INCLUDE_DIR
|
||||
GMP_LIBRARY
|
||||
GMPXX_INCLUDE_DIR
|
||||
GMPXX_LIBRARY
|
||||
)
|
550
build_files/cmake/Modules/GTest.cmake
Normal file
550
build_files/cmake/Modules/GTest.cmake
Normal file
@@ -0,0 +1,550 @@
|
||||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
#[=======================================================================[.rst:
|
||||
GoogleTest
|
||||
----------
|
||||
|
||||
.. versionadded:: 3.9
|
||||
|
||||
This module defines functions to help use the Google Test infrastructure. Two
|
||||
mechanisms for adding tests are provided. :command:`gtest_add_tests` has been
|
||||
around for some time, originally via ``find_package(GTest)``.
|
||||
:command:`gtest_discover_tests` was introduced in CMake 3.10.
|
||||
|
||||
The (older) :command:`gtest_add_tests` scans source files to identify tests.
|
||||
This is usually effective, with some caveats, including in cross-compiling
|
||||
environments, and makes setting additional properties on tests more convenient.
|
||||
However, its handling of parameterized tests is less comprehensive, and it
|
||||
requires re-running CMake to detect changes to the list of tests.
|
||||
|
||||
The (newer) :command:`gtest_discover_tests` discovers tests by asking the
|
||||
compiled test executable to enumerate its tests. This is more robust and
|
||||
provides better handling of parameterized tests, and does not require CMake
|
||||
to be re-run when tests change. However, it may not work in a cross-compiling
|
||||
environment, and setting test properties is less convenient.
|
||||
|
||||
More details can be found in the documentation of the respective functions.
|
||||
|
||||
Both commands are intended to replace use of :command:`add_test` to register
|
||||
tests, and will create a separate CTest test for each Google Test test case.
|
||||
Note that this is in some cases less efficient, as common set-up and tear-down
|
||||
logic cannot be shared by multiple test cases executing in the same instance.
|
||||
However, it provides more fine-grained pass/fail information to CTest, which is
|
||||
usually considered as more beneficial. By default, the CTest test name is the
|
||||
same as the Google Test name (i.e. ``suite.testcase``); see also
|
||||
``TEST_PREFIX`` and ``TEST_SUFFIX``.
|
||||
|
||||
.. command:: gtest_add_tests
|
||||
|
||||
Automatically add tests with CTest by scanning source code for Google Test
|
||||
macros::
|
||||
|
||||
gtest_add_tests(TARGET target
|
||||
[SOURCES src1...]
|
||||
[EXTRA_ARGS arg1...]
|
||||
[WORKING_DIRECTORY dir]
|
||||
[TEST_PREFIX prefix]
|
||||
[TEST_SUFFIX suffix]
|
||||
[SKIP_DEPENDENCY]
|
||||
[TEST_LIST outVar]
|
||||
)
|
||||
|
||||
``gtest_add_tests`` attempts to identify tests by scanning source files.
|
||||
Although this is generally effective, it uses only a basic regular expression
|
||||
match, which can be defeated by atypical test declarations, and is unable to
|
||||
fully "split" parameterized tests. Additionally, it requires that CMake be
|
||||
re-run to discover any newly added, removed or renamed tests (by default,
|
||||
this means that CMake is re-run when any test source file is changed, but see
|
||||
``SKIP_DEPENDENCY``). However, it has the advantage of declaring tests at
|
||||
CMake time, which somewhat simplifies setting additional properties on tests,
|
||||
and always works in a cross-compiling environment.
|
||||
|
||||
The options are:
|
||||
|
||||
``TARGET target``
|
||||
Specifies the Google Test executable, which must be a known CMake
|
||||
executable target. CMake will substitute the location of the built
|
||||
executable when running the test.
|
||||
|
||||
``SOURCES src1...``
|
||||
When provided, only the listed files will be scanned for test cases. If
|
||||
this option is not given, the :prop_tgt:`SOURCES` property of the
|
||||
specified ``target`` will be used to obtain the list of sources.
|
||||
|
||||
``EXTRA_ARGS arg1...``
|
||||
Any extra arguments to pass on the command line to each test case.
|
||||
|
||||
``WORKING_DIRECTORY dir``
|
||||
Specifies the directory in which to run the discovered test cases. If this
|
||||
option is not provided, the current binary directory is used.
|
||||
|
||||
``TEST_PREFIX prefix``
|
||||
Specifies a ``prefix`` to be prepended to the name of each discovered test
|
||||
case. This can be useful when the same source files are being used in
|
||||
multiple calls to ``gtest_add_test()`` but with different ``EXTRA_ARGS``.
|
||||
|
||||
``TEST_SUFFIX suffix``
|
||||
Similar to ``TEST_PREFIX`` except the ``suffix`` is appended to the name of
|
||||
every discovered test case. Both ``TEST_PREFIX`` and ``TEST_SUFFIX`` may
|
||||
be specified.
|
||||
|
||||
``SKIP_DEPENDENCY``
|
||||
Normally, the function creates a dependency which will cause CMake to be
|
||||
re-run if any of the sources being scanned are changed. This is to ensure
|
||||
that the list of discovered tests is updated. If this behavior is not
|
||||
desired (as may be the case while actually writing the test cases), this
|
||||
option can be used to prevent the dependency from being added.
|
||||
|
||||
``TEST_LIST outVar``
|
||||
The variable named by ``outVar`` will be populated in the calling scope
|
||||
with the list of discovered test cases. This allows the caller to do
|
||||
things like manipulate test properties of the discovered tests.
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
include(GoogleTest)
|
||||
add_executable(FooTest FooUnitTest.cxx)
|
||||
gtest_add_tests(TARGET FooTest
|
||||
TEST_SUFFIX .noArgs
|
||||
TEST_LIST noArgsTests
|
||||
)
|
||||
gtest_add_tests(TARGET FooTest
|
||||
EXTRA_ARGS --someArg someValue
|
||||
TEST_SUFFIX .withArgs
|
||||
TEST_LIST withArgsTests
|
||||
)
|
||||
set_tests_properties(${noArgsTests} PROPERTIES TIMEOUT 10)
|
||||
set_tests_properties(${withArgsTests} PROPERTIES TIMEOUT 20)
|
||||
|
||||
For backward compatibility, the following form is also supported::
|
||||
|
||||
gtest_add_tests(exe args files...)
|
||||
|
||||
``exe``
|
||||
The path to the test executable or the name of a CMake target.
|
||||
``args``
|
||||
A ;-list of extra arguments to be passed to executable. The entire
|
||||
list must be passed as a single argument. Enclose it in quotes,
|
||||
or pass ``""`` for no arguments.
|
||||
``files...``
|
||||
A list of source files to search for tests and test fixtures.
|
||||
Alternatively, use ``AUTO`` to specify that ``exe`` is the name
|
||||
of a CMake executable target whose sources should be scanned.
|
||||
|
||||
.. code-block:: cmake
|
||||
|
||||
include(GoogleTest)
|
||||
set(FooTestArgs --foo 1 --bar 2)
|
||||
add_executable(FooTest FooUnitTest.cxx)
|
||||
gtest_add_tests(FooTest "${FooTestArgs}" AUTO)
|
||||
|
||||
.. command:: gtest_discover_tests
|
||||
|
||||
Automatically add tests with CTest by querying the compiled test executable
|
||||
for available tests::
|
||||
|
||||
gtest_discover_tests(target
|
||||
[EXTRA_ARGS arg1...]
|
||||
[WORKING_DIRECTORY dir]
|
||||
[TEST_PREFIX prefix]
|
||||
[TEST_SUFFIX suffix]
|
||||
[NO_PRETTY_TYPES] [NO_PRETTY_VALUES]
|
||||
[PROPERTIES name1 value1...]
|
||||
[TEST_LIST var]
|
||||
[DISCOVERY_TIMEOUT seconds]
|
||||
[XML_OUTPUT_DIR dir]
|
||||
[DISCOVERY_MODE <POST_BUILD|PRE_TEST>]
|
||||
)
|
||||
|
||||
``gtest_discover_tests()`` sets up a post-build command on the test executable
|
||||
that generates the list of tests by parsing the output from running the test
|
||||
with the ``--gtest_list_tests`` argument. Compared to the source parsing
|
||||
approach of :command:`gtest_add_tests`, this ensures that the full list of
|
||||
tests, including instantiations of parameterized tests, is obtained. Since
|
||||
test discovery occurs at build time, it is not necessary to re-run CMake when
|
||||
the list of tests changes.
|
||||
However, it requires that :prop_tgt:`CROSSCOMPILING_EMULATOR` is properly set
|
||||
in order to function in a cross-compiling environment.
|
||||
|
||||
Additionally, setting properties on tests is somewhat less convenient, since
|
||||
the tests are not available at CMake time. Additional test properties may be
|
||||
assigned to the set of tests as a whole using the ``PROPERTIES`` option. If
|
||||
more fine-grained test control is needed, custom content may be provided
|
||||
through an external CTest script using the :prop_dir:`TEST_INCLUDE_FILES`
|
||||
directory property. The set of discovered tests is made accessible to such a
|
||||
script via the ``<target>_TESTS`` variable.
|
||||
|
||||
The options are:
|
||||
|
||||
``target``
|
||||
Specifies the Google Test executable, which must be a known CMake
|
||||
executable target. CMake will substitute the location of the built
|
||||
executable when running the test.
|
||||
|
||||
``EXTRA_ARGS arg1...``
|
||||
Any extra arguments to pass on the command line to each test case.
|
||||
|
||||
``WORKING_DIRECTORY dir``
|
||||
Specifies the directory in which to run the discovered test cases. If this
|
||||
option is not provided, the current binary directory is used.
|
||||
|
||||
``TEST_PREFIX prefix``
|
||||
Specifies a ``prefix`` to be prepended to the name of each discovered test
|
||||
case. This can be useful when the same test executable is being used in
|
||||
multiple calls to ``gtest_discover_tests()`` but with different
|
||||
``EXTRA_ARGS``.
|
||||
|
||||
``TEST_SUFFIX suffix``
|
||||
Similar to ``TEST_PREFIX`` except the ``suffix`` is appended to the name of
|
||||
every discovered test case. Both ``TEST_PREFIX`` and ``TEST_SUFFIX`` may
|
||||
be specified.
|
||||
|
||||
``NO_PRETTY_TYPES``
|
||||
By default, the type index of type-parameterized tests is replaced by the
|
||||
actual type name in the CTest test name. If this behavior is undesirable
|
||||
(e.g. because the type names are unwieldy), this option will suppress this
|
||||
behavior.
|
||||
|
||||
``NO_PRETTY_VALUES``
|
||||
By default, the value index of value-parameterized tests is replaced by the
|
||||
actual value in the CTest test name. If this behavior is undesirable
|
||||
(e.g. because the value strings are unwieldy), this option will suppress
|
||||
this behavior.
|
||||
|
||||
``PROPERTIES name1 value1...``
|
||||
Specifies additional properties to be set on all tests discovered by this
|
||||
invocation of ``gtest_discover_tests()``.
|
||||
|
||||
``TEST_LIST var``
|
||||
Make the list of tests available in the variable ``var``, rather than the
|
||||
default ``<target>_TESTS``. This can be useful when the same test
|
||||
executable is being used in multiple calls to ``gtest_discover_tests()``.
|
||||
Note that this variable is only available in CTest.
|
||||
|
||||
``DISCOVERY_TIMEOUT num``
|
||||
Specifies how long (in seconds) CMake will wait for the test to enumerate
|
||||
available tests. If the test takes longer than this, discovery (and your
|
||||
build) will fail. Most test executables will enumerate their tests very
|
||||
quickly, but under some exceptional circumstances, a test may require a
|
||||
longer timeout. The default is 5. See also the ``TIMEOUT`` option of
|
||||
:command:`execute_process`.
|
||||
|
||||
.. note::
|
||||
|
||||
In CMake versions 3.10.1 and 3.10.2, this option was called ``TIMEOUT``.
|
||||
This clashed with the ``TIMEOUT`` test property, which is one of the
|
||||
common properties that would be set with the ``PROPERTIES`` keyword,
|
||||
usually leading to legal but unintended behavior. The keyword was
|
||||
changed to ``DISCOVERY_TIMEOUT`` in CMake 3.10.3 to address this
|
||||
problem. The ambiguous behavior of the ``TIMEOUT`` keyword in 3.10.1
|
||||
and 3.10.2 has not been preserved.
|
||||
|
||||
``XML_OUTPUT_DIR dir``
|
||||
If specified, the parameter is passed along with ``--gtest_output=xml:``
|
||||
to test executable. The actual file name is the same as the test target,
|
||||
including prefix and suffix. This should be used instead of
|
||||
``EXTRA_ARGS --gtest_output=xml`` to avoid race conditions writing the
|
||||
XML result output when using parallel test execution.
|
||||
|
||||
``DISCOVERY_MODE``
|
||||
Provides greater control over when ``gtest_discover_tests()`` performs test
|
||||
discovery. By default, ``POST_BUILD`` sets up a post-build command
|
||||
to perform test discovery at build time. In certain scenarios, like
|
||||
cross-compiling, this ``POST_BUILD`` behavior is not desirable.
|
||||
By contrast, ``PRE_TEST`` delays test discovery until just prior to test
|
||||
execution. This way test discovery occurs in the target environment
|
||||
where the test has a better chance at finding appropriate runtime
|
||||
dependencies.
|
||||
|
||||
``DISCOVERY_MODE`` defaults to the value of the
|
||||
``CMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE`` variable if it is not
|
||||
passed when calling ``gtest_discover_tests()``. This provides a mechanism
|
||||
for globally selecting a preferred test discovery behavior without having
|
||||
to modify each call site.
|
||||
|
||||
#]=======================================================================]
|
||||
|
||||
# Save project's policies
|
||||
cmake_policy(PUSH)
|
||||
cmake_policy(SET CMP0057 NEW) # if IN_LIST
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
function(gtest_add_tests)
|
||||
|
||||
if (ARGC LESS 1)
|
||||
message(FATAL_ERROR "No arguments supplied to gtest_add_tests()")
|
||||
endif()
|
||||
|
||||
set(options
|
||||
SKIP_DEPENDENCY
|
||||
)
|
||||
set(oneValueArgs
|
||||
TARGET
|
||||
WORKING_DIRECTORY
|
||||
TEST_PREFIX
|
||||
TEST_SUFFIX
|
||||
TEST_LIST
|
||||
)
|
||||
set(multiValueArgs
|
||||
SOURCES
|
||||
EXTRA_ARGS
|
||||
)
|
||||
set(allKeywords ${options} ${oneValueArgs} ${multiValueArgs})
|
||||
|
||||
unset(sources)
|
||||
if("${ARGV0}" IN_LIST allKeywords)
|
||||
cmake_parse_arguments(ARGS "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||
set(autoAddSources YES)
|
||||
else()
|
||||
# Non-keyword syntax, convert to keyword form
|
||||
if (ARGC LESS 3)
|
||||
message(FATAL_ERROR "gtest_add_tests() without keyword options requires at least 3 arguments")
|
||||
endif()
|
||||
set(ARGS_TARGET "${ARGV0}")
|
||||
set(ARGS_EXTRA_ARGS "${ARGV1}")
|
||||
if(NOT "${ARGV2}" STREQUAL "AUTO")
|
||||
set(ARGS_SOURCES "${ARGV}")
|
||||
list(REMOVE_AT ARGS_SOURCES 0 1)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
# The non-keyword syntax allows the first argument to be an arbitrary
|
||||
# executable rather than a target if source files are also provided. In all
|
||||
# other cases, both forms require a target.
|
||||
if(NOT TARGET "${ARGS_TARGET}" AND NOT ARGS_SOURCES)
|
||||
message(FATAL_ERROR "${ARGS_TARGET} does not define an existing CMake target")
|
||||
endif()
|
||||
if(NOT ARGS_WORKING_DIRECTORY)
|
||||
unset(workDir)
|
||||
else()
|
||||
set(workDir WORKING_DIRECTORY "${ARGS_WORKING_DIRECTORY}")
|
||||
endif()
|
||||
|
||||
if(NOT ARGS_SOURCES)
|
||||
get_property(ARGS_SOURCES TARGET ${ARGS_TARGET} PROPERTY SOURCES)
|
||||
endif()
|
||||
|
||||
unset(testList)
|
||||
|
||||
set(gtest_case_name_regex ".*\\( *([A-Za-z_0-9]+) *, *([A-Za-z_0-9]+) *\\).*")
|
||||
set(gtest_test_type_regex "(TYPED_TEST|TEST_?[FP]?)")
|
||||
|
||||
foreach(source IN LISTS ARGS_SOURCES)
|
||||
if(NOT ARGS_SKIP_DEPENDENCY)
|
||||
set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${source})
|
||||
endif()
|
||||
file(READ "${source}" contents)
|
||||
string(REGEX MATCHALL "${gtest_test_type_regex} *\\(([A-Za-z_0-9 ,]+)\\)" found_tests "${contents}")
|
||||
foreach(hit ${found_tests})
|
||||
string(REGEX MATCH "${gtest_test_type_regex}" test_type ${hit})
|
||||
|
||||
# Parameterized tests have a different signature for the filter
|
||||
if("x${test_type}" STREQUAL "xTEST_P")
|
||||
string(REGEX REPLACE ${gtest_case_name_regex} "*/\\1.\\2/*" gtest_test_name ${hit})
|
||||
elseif("x${test_type}" STREQUAL "xTEST_F" OR "x${test_type}" STREQUAL "xTEST")
|
||||
string(REGEX REPLACE ${gtest_case_name_regex} "\\1.\\2" gtest_test_name ${hit})
|
||||
elseif("x${test_type}" STREQUAL "xTYPED_TEST")
|
||||
string(REGEX REPLACE ${gtest_case_name_regex} "\\1/*.\\2" gtest_test_name ${hit})
|
||||
else()
|
||||
message(WARNING "Could not parse GTest ${hit} for adding to CTest.")
|
||||
continue()
|
||||
endif()
|
||||
|
||||
# Make sure tests disabled in GTest get disabled in CTest
|
||||
if(gtest_test_name MATCHES "(^|\\.)DISABLED_")
|
||||
# Add the disabled test if CMake is new enough
|
||||
# Note that this check is to allow backwards compatibility so this
|
||||
# module can be copied locally in projects to use with older CMake
|
||||
# versions
|
||||
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.8.20170401)
|
||||
string(REGEX REPLACE
|
||||
"(^|\\.)DISABLED_" "\\1"
|
||||
orig_test_name "${gtest_test_name}"
|
||||
)
|
||||
set(ctest_test_name
|
||||
${ARGS_TEST_PREFIX}${orig_test_name}${ARGS_TEST_SUFFIX}
|
||||
)
|
||||
add_test(NAME ${ctest_test_name}
|
||||
${workDir}
|
||||
COMMAND ${ARGS_TARGET}
|
||||
--gtest_also_run_disabled_tests
|
||||
--gtest_filter=${gtest_test_name}
|
||||
${ARGS_EXTRA_ARGS}
|
||||
)
|
||||
set_tests_properties(${ctest_test_name} PROPERTIES DISABLED TRUE)
|
||||
list(APPEND testList ${ctest_test_name})
|
||||
endif()
|
||||
else()
|
||||
set(ctest_test_name ${ARGS_TEST_PREFIX}${gtest_test_name}${ARGS_TEST_SUFFIX})
|
||||
add_test(NAME ${ctest_test_name}
|
||||
${workDir}
|
||||
COMMAND ${ARGS_TARGET}
|
||||
--gtest_filter=${gtest_test_name}
|
||||
${ARGS_EXTRA_ARGS}
|
||||
)
|
||||
list(APPEND testList ${ctest_test_name})
|
||||
endif()
|
||||
endforeach()
|
||||
endforeach()
|
||||
|
||||
if(ARGS_TEST_LIST)
|
||||
set(${ARGS_TEST_LIST} ${testList} PARENT_SCOPE)
|
||||
endif()
|
||||
|
||||
endfunction()
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
|
||||
function(gtest_discover_tests TARGET)
|
||||
cmake_parse_arguments(
|
||||
""
|
||||
"NO_PRETTY_TYPES;NO_PRETTY_VALUES"
|
||||
"TEST_PREFIX;TEST_SUFFIX;WORKING_DIRECTORY;TEST_LIST;DISCOVERY_TIMEOUT;XML_OUTPUT_DIR;DISCOVERY_MODE"
|
||||
"EXTRA_ARGS;PROPERTIES"
|
||||
${ARGN}
|
||||
)
|
||||
|
||||
if(NOT _WORKING_DIRECTORY)
|
||||
set(_WORKING_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
endif()
|
||||
if(NOT _TEST_LIST)
|
||||
set(_TEST_LIST ${TARGET}_TESTS)
|
||||
endif()
|
||||
if(NOT _DISCOVERY_TIMEOUT)
|
||||
set(_DISCOVERY_TIMEOUT 5)
|
||||
endif()
|
||||
if(NOT _DISCOVERY_MODE)
|
||||
if(NOT CMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE)
|
||||
set(CMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE "POST_BUILD")
|
||||
endif()
|
||||
set(_DISCOVERY_MODE ${CMAKE_GTEST_DISCOVER_TESTS_DISCOVERY_MODE})
|
||||
endif()
|
||||
|
||||
get_property(
|
||||
has_counter
|
||||
TARGET ${TARGET}
|
||||
PROPERTY CTEST_DISCOVERED_TEST_COUNTER
|
||||
SET
|
||||
)
|
||||
if(has_counter)
|
||||
get_property(
|
||||
counter
|
||||
TARGET ${TARGET}
|
||||
PROPERTY CTEST_DISCOVERED_TEST_COUNTER
|
||||
)
|
||||
math(EXPR counter "${counter} + 1")
|
||||
else()
|
||||
set(counter 1)
|
||||
endif()
|
||||
set_property(
|
||||
TARGET ${TARGET}
|
||||
PROPERTY CTEST_DISCOVERED_TEST_COUNTER
|
||||
${counter}
|
||||
)
|
||||
|
||||
# Define rule to generate test list for aforementioned test executable
|
||||
# Blender: use _ instead of [] to avoid problems with zsh regex.
|
||||
set(ctest_file_base "${CMAKE_CURRENT_BINARY_DIR}/${TARGET}_${counter}_")
|
||||
set(ctest_include_file "${ctest_file_base}_include.cmake")
|
||||
set(ctest_tests_file "${ctest_file_base}_tests.cmake")
|
||||
get_property(crosscompiling_emulator
|
||||
TARGET ${TARGET}
|
||||
PROPERTY CROSSCOMPILING_EMULATOR
|
||||
)
|
||||
|
||||
if(_DISCOVERY_MODE STREQUAL "POST_BUILD")
|
||||
add_custom_command(
|
||||
TARGET ${TARGET} POST_BUILD
|
||||
BYPRODUCTS "${ctest_tests_file}"
|
||||
COMMAND "${CMAKE_COMMAND}"
|
||||
-D "TEST_TARGET=${TARGET}"
|
||||
-D "TEST_EXECUTABLE=$<TARGET_FILE:${TARGET}>"
|
||||
-D "TEST_EXECUTOR=${crosscompiling_emulator}"
|
||||
-D "TEST_WORKING_DIR=${_WORKING_DIRECTORY}"
|
||||
-D "TEST_EXTRA_ARGS=${_EXTRA_ARGS}"
|
||||
-D "TEST_PROPERTIES=${_PROPERTIES}"
|
||||
-D "TEST_PREFIX=${_TEST_PREFIX}"
|
||||
-D "TEST_SUFFIX=${_TEST_SUFFIX}"
|
||||
-D "NO_PRETTY_TYPES=${_NO_PRETTY_TYPES}"
|
||||
-D "NO_PRETTY_VALUES=${_NO_PRETTY_VALUES}"
|
||||
-D "TEST_LIST=${_TEST_LIST}"
|
||||
-D "CTEST_FILE=${ctest_tests_file}"
|
||||
-D "TEST_DISCOVERY_TIMEOUT=${_DISCOVERY_TIMEOUT}"
|
||||
-D "TEST_XML_OUTPUT_DIR=${_XML_OUTPUT_DIR}"
|
||||
-P "${_GOOGLETEST_DISCOVER_TESTS_SCRIPT}"
|
||||
VERBATIM
|
||||
)
|
||||
|
||||
file(WRITE "${ctest_include_file}"
|
||||
"if(EXISTS \"${ctest_tests_file}\")\n"
|
||||
" include(\"${ctest_tests_file}\")\n"
|
||||
"else()\n"
|
||||
" add_test(${TARGET}_NOT_BUILT ${TARGET}_NOT_BUILT)\n"
|
||||
"endif()\n"
|
||||
)
|
||||
elseif(_DISCOVERY_MODE STREQUAL "PRE_TEST")
|
||||
|
||||
get_property(GENERATOR_IS_MULTI_CONFIG GLOBAL
|
||||
PROPERTY GENERATOR_IS_MULTI_CONFIG
|
||||
)
|
||||
|
||||
if(GENERATOR_IS_MULTI_CONFIG)
|
||||
set(ctest_tests_file "${ctest_file_base}_tests-$<CONFIG>.cmake")
|
||||
endif()
|
||||
|
||||
string(CONCAT ctest_include_content
|
||||
"if(EXISTS \"$<TARGET_FILE:${TARGET}>\")" "\n"
|
||||
" if(\"$<TARGET_FILE:${TARGET}>\" IS_NEWER_THAN \"${ctest_tests_file}\")" "\n"
|
||||
" include(\"${_GOOGLETEST_DISCOVER_TESTS_SCRIPT}\")" "\n"
|
||||
" gtest_discover_tests_impl(" "\n"
|
||||
" TEST_EXECUTABLE" " [==[" "$<TARGET_FILE:${TARGET}>" "]==]" "\n"
|
||||
" TEST_EXECUTOR" " [==[" "${crosscompiling_emulator}" "]==]" "\n"
|
||||
" TEST_WORKING_DIR" " [==[" "${_WORKING_DIRECTORY}" "]==]" "\n"
|
||||
" TEST_EXTRA_ARGS" " [==[" "${_EXTRA_ARGS}" "]==]" "\n"
|
||||
" TEST_PROPERTIES" " [==[" "${_PROPERTIES}" "]==]" "\n"
|
||||
" TEST_PREFIX" " [==[" "${_TEST_PREFIX}" "]==]" "\n"
|
||||
" TEST_SUFFIX" " [==[" "${_TEST_SUFFIX}" "]==]" "\n"
|
||||
" NO_PRETTY_TYPES" " [==[" "${_NO_PRETTY_TYPES}" "]==]" "\n"
|
||||
" NO_PRETTY_VALUES" " [==[" "${_NO_PRETTY_VALUES}" "]==]" "\n"
|
||||
" TEST_LIST" " [==[" "${_TEST_LIST}" "]==]" "\n"
|
||||
" CTEST_FILE" " [==[" "${ctest_tests_file}" "]==]" "\n"
|
||||
" TEST_DISCOVERY_TIMEOUT" " [==[" "${_DISCOVERY_TIMEOUT}" "]==]" "\n"
|
||||
" TEST_XML_OUTPUT_DIR" " [==[" "${_XML_OUTPUT_DIR}" "]==]" "\n"
|
||||
" )" "\n"
|
||||
" endif()" "\n"
|
||||
" include(\"${ctest_tests_file}\")" "\n"
|
||||
"else()" "\n"
|
||||
" add_test(${TARGET}_NOT_BUILT ${TARGET}_NOT_BUILT)" "\n"
|
||||
"endif()" "\n"
|
||||
)
|
||||
|
||||
if(GENERATOR_IS_MULTI_CONFIG)
|
||||
foreach(_config ${CMAKE_CONFIGURATION_TYPES})
|
||||
file(GENERATE OUTPUT "${ctest_file_base}_include-${_config}.cmake" CONTENT "${ctest_include_content}" CONDITION $<CONFIG:${_config}>)
|
||||
endforeach()
|
||||
file(WRITE "${ctest_include_file}" "include(\"${ctest_file_base}_include-\${CTEST_CONFIGURATION_TYPE}.cmake\")")
|
||||
else()
|
||||
file(GENERATE OUTPUT "${ctest_file_base}_include.cmake" CONTENT "${ctest_include_content}")
|
||||
file(WRITE "${ctest_include_file}" "include(\"${ctest_file_base}_include.cmake\")")
|
||||
endif()
|
||||
|
||||
else()
|
||||
message(FATAL_ERROR "Unknown DISCOVERY_MODE: ${_DISCOVERY_MODE}")
|
||||
endif()
|
||||
|
||||
# Add discovered tests to directory TEST_INCLUDE_FILES
|
||||
set_property(DIRECTORY
|
||||
APPEND PROPERTY TEST_INCLUDE_FILES "${ctest_include_file}"
|
||||
)
|
||||
|
||||
endfunction()
|
||||
|
||||
###############################################################################
|
||||
|
||||
set(_GOOGLETEST_DISCOVER_TESTS_SCRIPT
|
||||
${CMAKE_CURRENT_LIST_DIR}/GTestAddTests.cmake
|
||||
)
|
||||
|
||||
# Restore project's policies
|
||||
cmake_policy(POP)
|
191
build_files/cmake/Modules/GTestAddTests.cmake
Normal file
191
build_files/cmake/Modules/GTestAddTests.cmake
Normal file
@@ -0,0 +1,191 @@
|
||||
# Distributed under the OSI-approved BSD 3-Clause License. See accompanying
|
||||
# file Copyright.txt or https://cmake.org/licensing for details.
|
||||
|
||||
# Blender: disable ASAN leak detection when trying to discover tests.
|
||||
set(ENV{ASAN_OPTIONS} "detect_leaks=0")
|
||||
|
||||
cmake_minimum_required(VERSION ${CMAKE_VERSION})
|
||||
|
||||
# Overwrite possibly existing ${_CTEST_FILE} with empty file
|
||||
set(flush_tests_MODE WRITE)
|
||||
|
||||
# Flushes script to ${_CTEST_FILE}
|
||||
macro(flush_script)
|
||||
file(${flush_tests_MODE} "${_CTEST_FILE}" "${script}")
|
||||
set(flush_tests_MODE APPEND)
|
||||
|
||||
set(script "")
|
||||
endmacro()
|
||||
|
||||
# Flushes tests_buffer to tests
|
||||
macro(flush_tests_buffer)
|
||||
list(APPEND tests "${tests_buffer}")
|
||||
set(tests_buffer "")
|
||||
endmacro()
|
||||
|
||||
macro(add_command NAME)
|
||||
set(_args "")
|
||||
foreach(_arg ${ARGN})
|
||||
if(_arg MATCHES "[^-./:a-zA-Z0-9_]")
|
||||
string(APPEND _args " [==[${_arg}]==]")
|
||||
else()
|
||||
string(APPEND _args " ${_arg}")
|
||||
endif()
|
||||
endforeach()
|
||||
string(APPEND script "${NAME}(${_args})\n")
|
||||
string(LENGTH "${script}" _script_len)
|
||||
if(${_script_len} GREATER "50000")
|
||||
flush_script()
|
||||
endif()
|
||||
# Unsets macro local variables to prevent leakage outside of this macro.
|
||||
unset(_args)
|
||||
unset(_script_len)
|
||||
endmacro()
|
||||
|
||||
function(gtest_discover_tests_impl)
|
||||
|
||||
cmake_parse_arguments(
|
||||
""
|
||||
""
|
||||
"NO_PRETTY_TYPES;NO_PRETTY_VALUES;TEST_EXECUTABLE;TEST_EXECUTOR;TEST_WORKING_DIR;TEST_PREFIX;TEST_SUFFIX;TEST_LIST;CTEST_FILE;TEST_DISCOVERY_TIMEOUT;TEST_XML_OUTPUT_DIR"
|
||||
"TEST_EXTRA_ARGS;TEST_PROPERTIES"
|
||||
${ARGN}
|
||||
)
|
||||
|
||||
set(prefix "${_TEST_PREFIX}")
|
||||
set(suffix "${_TEST_SUFFIX}")
|
||||
set(extra_args ${_TEST_EXTRA_ARGS})
|
||||
set(properties ${_TEST_PROPERTIES})
|
||||
set(script)
|
||||
set(suite)
|
||||
set(tests)
|
||||
set(tests_buffer)
|
||||
|
||||
# Run test executable to get list of available tests
|
||||
if(NOT EXISTS "${_TEST_EXECUTABLE}")
|
||||
message(FATAL_ERROR
|
||||
"Specified test executable does not exist.\n"
|
||||
" Path: '${_TEST_EXECUTABLE}'"
|
||||
)
|
||||
endif()
|
||||
execute_process(
|
||||
COMMAND ${_TEST_EXECUTOR} "${_TEST_EXECUTABLE}" --gtest_list_tests
|
||||
WORKING_DIRECTORY "${_TEST_WORKING_DIR}"
|
||||
TIMEOUT ${_TEST_DISCOVERY_TIMEOUT}
|
||||
OUTPUT_VARIABLE output
|
||||
RESULT_VARIABLE result
|
||||
)
|
||||
if(NOT ${result} EQUAL 0)
|
||||
string(REPLACE "\n" "\n " output "${output}")
|
||||
message(FATAL_ERROR
|
||||
"Error running test executable.\n"
|
||||
" Path: '${_TEST_EXECUTABLE}'\n"
|
||||
" Result: ${result}\n"
|
||||
" Output:\n"
|
||||
" ${output}\n"
|
||||
)
|
||||
endif()
|
||||
|
||||
# Preserve semicolon in test-parameters
|
||||
string(REPLACE [[;]] [[\;]] output "${output}")
|
||||
string(REPLACE "\n" ";" output "${output}")
|
||||
|
||||
# Parse output
|
||||
foreach(line ${output})
|
||||
# Skip header
|
||||
if(NOT line MATCHES "gtest_main\\.cc")
|
||||
# Do we have a module name or a test name?
|
||||
if(NOT line MATCHES "^ ")
|
||||
# Module; remove trailing '.' to get just the name...
|
||||
string(REGEX REPLACE "\\.( *#.*)?" "" suite "${line}")
|
||||
if(line MATCHES "#" AND NOT _NO_PRETTY_TYPES)
|
||||
string(REGEX REPLACE "/[0-9]\\.+ +#.*= +" "/" pretty_suite "${line}")
|
||||
else()
|
||||
set(pretty_suite "${suite}")
|
||||
endif()
|
||||
string(REGEX REPLACE "^DISABLED_" "" pretty_suite "${pretty_suite}")
|
||||
else()
|
||||
# Test name; strip spaces and comments to get just the name...
|
||||
string(REGEX REPLACE " +" "" test "${line}")
|
||||
if(test MATCHES "#" AND NOT _NO_PRETTY_VALUES)
|
||||
string(REGEX REPLACE "/[0-9]+#GetParam..=" "/" pretty_test "${test}")
|
||||
else()
|
||||
string(REGEX REPLACE "#.*" "" pretty_test "${test}")
|
||||
endif()
|
||||
string(REGEX REPLACE "^DISABLED_" "" pretty_test "${pretty_test}")
|
||||
string(REGEX REPLACE "#.*" "" test "${test}")
|
||||
if(NOT "${_TEST_XML_OUTPUT_DIR}" STREQUAL "")
|
||||
set(TEST_XML_OUTPUT_PARAM "--gtest_output=xml:${_TEST_XML_OUTPUT_DIR}/${prefix}${suite}.${test}${suffix}.xml")
|
||||
else()
|
||||
unset(TEST_XML_OUTPUT_PARAM)
|
||||
endif()
|
||||
|
||||
# sanitize test name for further processing downstream
|
||||
set(testname "${prefix}${pretty_suite}.${pretty_test}${suffix}")
|
||||
# escape \
|
||||
string(REPLACE [[\]] [[\\]] testname "${testname}")
|
||||
# escape ;
|
||||
string(REPLACE [[;]] [[\;]] testname "${testname}")
|
||||
# escape $
|
||||
string(REPLACE [[$]] [[\$]] testname "${testname}")
|
||||
|
||||
# ...and add to script
|
||||
add_command(add_test
|
||||
"${testname}"
|
||||
${_TEST_EXECUTOR}
|
||||
"${_TEST_EXECUTABLE}"
|
||||
"--gtest_filter=${suite}.${test}"
|
||||
"--gtest_also_run_disabled_tests"
|
||||
${TEST_XML_OUTPUT_PARAM}
|
||||
${extra_args}
|
||||
)
|
||||
if(suite MATCHES "^DISABLED" OR test MATCHES "^DISABLED")
|
||||
add_command(set_tests_properties
|
||||
"${testname}"
|
||||
PROPERTIES DISABLED TRUE
|
||||
)
|
||||
endif()
|
||||
add_command(set_tests_properties
|
||||
"${testname}"
|
||||
PROPERTIES
|
||||
WORKING_DIRECTORY "${_TEST_WORKING_DIR}"
|
||||
SKIP_REGULAR_EXPRESSION "\\\\[ SKIPPED \\\\]"
|
||||
${properties}
|
||||
)
|
||||
list(APPEND tests_buffer "${testname}")
|
||||
list(LENGTH tests_buffer tests_buffer_length)
|
||||
if(${tests_buffer_length} GREATER "250")
|
||||
flush_tests_buffer()
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
|
||||
# Create a list of all discovered tests, which users may use to e.g. set
|
||||
# properties on the tests
|
||||
flush_tests_buffer()
|
||||
add_command(set ${_TEST_LIST} ${tests})
|
||||
|
||||
# Write CTest script
|
||||
flush_script()
|
||||
|
||||
endfunction()
|
||||
|
||||
if(CMAKE_SCRIPT_MODE_FILE)
|
||||
gtest_discover_tests_impl(
|
||||
NO_PRETTY_TYPES ${NO_PRETTY_TYPES}
|
||||
NO_PRETTY_VALUES ${NO_PRETTY_VALUES}
|
||||
TEST_EXECUTABLE ${TEST_EXECUTABLE}
|
||||
TEST_EXECUTOR ${TEST_EXECUTOR}
|
||||
TEST_WORKING_DIR ${TEST_WORKING_DIR}
|
||||
TEST_PREFIX ${TEST_PREFIX}
|
||||
TEST_SUFFIX ${TEST_SUFFIX}
|
||||
TEST_LIST ${TEST_LIST}
|
||||
CTEST_FILE ${CTEST_FILE}
|
||||
TEST_DISCOVERY_TIMEOUT ${TEST_DISCOVERY_TIMEOUT}
|
||||
TEST_XML_OUTPUT_DIR ${TEST_XML_OUTPUT_DIR}
|
||||
TEST_EXTRA_ARGS ${TEST_EXTRA_ARGS}
|
||||
TEST_PROPERTIES ${TEST_PROPERTIES}
|
||||
)
|
||||
endif()
|
@@ -15,6 +15,7 @@ set(WITH_CYCLES_EMBREE ON CACHE BOOL "" FORCE)
|
||||
set(WITH_CYCLES_OSL ON CACHE BOOL "" FORCE)
|
||||
set(WITH_DRACO ON CACHE BOOL "" FORCE)
|
||||
set(WITH_FFTW3 ON CACHE BOOL "" FORCE)
|
||||
set(WITH_GMP OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_LIBMV ON CACHE BOOL "" FORCE)
|
||||
set(WITH_LIBMV_SCHUR_SPECIALIZATIONS ON CACHE BOOL "" FORCE)
|
||||
set(WITH_COMPOSITOR ON CACHE BOOL "" FORCE)
|
||||
|
@@ -20,6 +20,7 @@ set(WITH_CYCLES_OSL OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_CYCLES_DEVICE_OPTIX OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_DRACO OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_FFTW3 OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_GMP OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_LIBMV OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_LLVM OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_COMPOSITOR OFF CACHE BOOL "" FORCE)
|
||||
|
@@ -16,6 +16,7 @@ set(WITH_CYCLES_EMBREE ON CACHE BOOL "" FORCE)
|
||||
set(WITH_CYCLES_OSL ON CACHE BOOL "" FORCE)
|
||||
set(WITH_DRACO ON CACHE BOOL "" FORCE)
|
||||
set(WITH_FFTW3 ON CACHE BOOL "" FORCE)
|
||||
set(WITH_GMP OFF CACHE BOOL "" FORCE)
|
||||
set(WITH_LIBMV ON CACHE BOOL "" FORCE)
|
||||
set(WITH_LIBMV_SCHUR_SPECIALIZATIONS ON CACHE BOOL "" FORCE)
|
||||
set(WITH_COMPOSITOR ON CACHE BOOL "" FORCE)
|
||||
|
@@ -418,7 +418,7 @@ function(setup_heavy_lib_pool)
|
||||
list(APPEND _HEAVY_LIBS "cycles_device" "cycles_kernel")
|
||||
endif()
|
||||
if(WITH_LIBMV)
|
||||
list(APPEND _HEAVY_LIBS "bf_intern_libmv")
|
||||
list(APPEND _HEAVY_LIBS "extern_ceres" "bf_intern_libmv")
|
||||
endif()
|
||||
if(WITH_OPENVDB)
|
||||
list(APPEND _HEAVY_LIBS "bf_intern_openvdb")
|
||||
|
@@ -437,6 +437,14 @@ if(WITH_XR_OPENXR)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_GMP)
|
||||
find_package(GMP)
|
||||
if(NOT GMP_FOUND)
|
||||
message(WARNING "GMP not found, disabling WITH_GMP")
|
||||
set(WITH_GMP OFF)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
set(EXETYPE MACOSX_BUNDLE)
|
||||
|
||||
set(CMAKE_C_FLAGS_DEBUG "-fno-strict-aliasing -g")
|
||||
|
@@ -435,6 +435,14 @@ if(WITH_XR_OPENXR)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_GMP)
|
||||
find_package_wrapper(GMP)
|
||||
if(NOT GMP_FOUND)
|
||||
message(WARNING "GMP not found, disabling WITH_GMP")
|
||||
set(WITH_GMP OFF)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(EXISTS ${LIBDIR})
|
||||
without_system_libs_end()
|
||||
endif()
|
||||
|
@@ -26,10 +26,6 @@ if(NOT MSVC)
|
||||
message(FATAL_ERROR "Compiler is unsupported")
|
||||
endif()
|
||||
|
||||
if(WITH_GTESTS AND ${CMAKE_VERSION} VERSION_LESS "3.18.0")
|
||||
message(FATAL_ERROR "CMake 3.18.0 is required for building WITH_GTESTS on windows, currently installed cmake version is ${CMAKE_VERSION}")
|
||||
endif()
|
||||
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
set(MSVC_CLANG On)
|
||||
set(VC_TOOLS_DIR $ENV{VCToolsRedistDir} CACHE STRING "Location of the msvc redistributables")
|
||||
@@ -754,3 +750,10 @@ if(WITH_XR_OPENXR)
|
||||
set(WITH_XR_OPENXR OFF)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(WITH_GMP)
|
||||
set(GMP_INCLUDE_DIRS ${LIBDIR}/gmp/include)
|
||||
set(GMP_LIBRARIES ${LIBDIR}/gmp/lib/libgmp-10.lib optimized ${LIBDIR}/gmp/lib/libgmpxx.lib debug ${LIBDIR}/gmp/lib/libgmpxx_d.lib)
|
||||
set(GMP_ROOT_DIR ${LIBDIR}/gmp)
|
||||
set(GMP_FOUND On)
|
||||
endif()
|
||||
|
@@ -20,6 +20,7 @@ from gpu_extras.presets import draw_circle_2d
|
||||
offscreen = gpu.types.GPUOffScreen(512, 512)
|
||||
|
||||
with offscreen.bind():
|
||||
bgl.glClearColor(0.0, 0.0, 0.0, 0.0)
|
||||
bgl.glClear(bgl.GL_COLOR_BUFFER_BIT)
|
||||
with gpu.matrix.push_pop():
|
||||
# reset matrices -> use normalized device coordinates [-1, 1]
|
||||
|
@@ -25,6 +25,7 @@ RING_AMOUNT = 10
|
||||
offscreen = gpu.types.GPUOffScreen(WIDTH, HEIGHT)
|
||||
|
||||
with offscreen.bind():
|
||||
bgl.glClearColor(0.0, 0.0, 0.0, 0.0)
|
||||
bgl.glClear(bgl.GL_COLOR_BUFFER_BIT)
|
||||
with gpu.matrix.push_pop():
|
||||
# reset matrices -> use normalized device coordinates [-1, 1]
|
||||
|
6
extern/audaspace/bindings/python/PySound.cpp
vendored
6
extern/audaspace/bindings/python/PySound.cpp
vendored
@@ -1395,9 +1395,9 @@ PyDoc_STRVAR(M_aud_Sound_threshold_doc,
|
||||
" all between to 0.\n\n"
|
||||
" :arg threshold: Threshold value over which an amplitude counts\n"
|
||||
" non-zero.\n\n"
|
||||
":type threshold: float\n"
|
||||
":return: The created :class:`Sound` object.\n"
|
||||
":rtype: :class:`Sound`");
|
||||
" :type threshold: float\n"
|
||||
" :return: The created :class:`Sound` object.\n"
|
||||
" :rtype: :class:`Sound`");
|
||||
|
||||
static PyObject *
|
||||
Sound_threshold(Sound* self, PyObject* args)
|
||||
|
@@ -119,8 +119,8 @@ void JOSResampleReader::updateBuffer(int size, double factor, int samplesize)
|
||||
P = int_to_fp(m_L) - P;\
|
||||
\
|
||||
end = std::floor((m_len - 1) / double(m_L) + m_P) - 1;\
|
||||
if(m_cache_valid - m_n - 2 < end)\
|
||||
end = m_cache_valid - m_n - 2;\
|
||||
if(m_cache_valid - int(m_n) - 2 < end)\
|
||||
end = m_cache_valid - int(m_n) - 2;\
|
||||
\
|
||||
data = buf + (m_n + 2 + end) * m_channels - 1;\
|
||||
l = fp_to_int(P);\
|
||||
@@ -166,8 +166,8 @@ void JOSResampleReader::updateBuffer(int size, double factor, int samplesize)
|
||||
P = 0 - P;\
|
||||
\
|
||||
end = (int_to_fp(m_len) - P) / P_increment - 1;\
|
||||
if(m_cache_valid - m_n - 2 < end)\
|
||||
end = m_cache_valid - m_n - 2;\
|
||||
if(m_cache_valid - int(m_n) - 2 < end)\
|
||||
end = m_cache_valid - int(m_n) - 2;\
|
||||
\
|
||||
P += P_increment * end;\
|
||||
data = buf + (m_n + 2 + end) * m_channels - 1;\
|
||||
|
@@ -923,6 +923,74 @@ static void create_subd_mesh(Scene *scene,
|
||||
|
||||
/* Sync */
|
||||
|
||||
static BL::MeshSequenceCacheModifier object_mesh_cache_find(BL::Object &b_ob,
|
||||
BL::Scene /*b_scene*/)
|
||||
{
|
||||
BL::Object::modifiers_iterator b_mod;
|
||||
|
||||
for (b_ob.modifiers.begin(b_mod); b_mod != b_ob.modifiers.end(); ++b_mod) {
|
||||
if (!b_mod->is_a(&RNA_MeshSequenceCacheModifier)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
BL::MeshSequenceCacheModifier mesh_cache = BL::MeshSequenceCacheModifier(*b_mod);
|
||||
|
||||
if (MeshSequenceCacheModifier_has_velocity_get(&mesh_cache.ptr)) {
|
||||
return mesh_cache;
|
||||
}
|
||||
}
|
||||
|
||||
return BL::MeshSequenceCacheModifier(PointerRNA_NULL);
|
||||
}
|
||||
|
||||
static void sync_mesh_cached_velocities(BL::Object &b_ob,
|
||||
BL::Scene b_scene,
|
||||
Scene *scene,
|
||||
Mesh *mesh)
|
||||
{
|
||||
if (scene->need_motion() == Scene::MOTION_NONE)
|
||||
return;
|
||||
|
||||
BL::MeshSequenceCacheModifier b_mesh_cache = object_mesh_cache_find(b_ob, b_scene);
|
||||
|
||||
if (!b_mesh_cache) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Find or add attribute */
|
||||
float3 *P = &mesh->verts[0];
|
||||
Attribute *attr_mP = mesh->attributes.find(ATTR_STD_MOTION_VERTEX_POSITION);
|
||||
|
||||
if (!attr_mP) {
|
||||
attr_mP = mesh->attributes.add(ATTR_STD_MOTION_VERTEX_POSITION);
|
||||
}
|
||||
|
||||
if (!MeshSequenceCacheModifier_read_velocity_get(&b_mesh_cache.ptr)) {
|
||||
return;
|
||||
}
|
||||
|
||||
const size_t numverts = mesh->verts.size();
|
||||
|
||||
if (b_mesh_cache.vertex_velocities.length() != numverts) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Only export previous and next frame, we don't have any in between data. */
|
||||
float motion_times[2] = {-1.0f, 1.0f};
|
||||
for (int step = 0; step < 2; step++) {
|
||||
const float relative_time = motion_times[step] * scene->motion_shutter_time() * 0.5f;
|
||||
float3 *mP = attr_mP->data_float3() + step * numverts;
|
||||
|
||||
BL::MeshSequenceCacheModifier::vertex_velocities_iterator vvi;
|
||||
int i = 0;
|
||||
|
||||
for (b_mesh_cache.vertex_velocities.begin(vvi); vvi != b_mesh_cache.vertex_velocities.end();
|
||||
++vvi, ++i) {
|
||||
mP[i] = P[i] + get_float3(vvi->velocity()) * relative_time;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void sync_mesh_fluid_motion(BL::Object &b_ob, Scene *scene, Mesh *mesh)
|
||||
{
|
||||
if (scene->need_motion() == Scene::MOTION_NONE)
|
||||
@@ -1002,6 +1070,9 @@ void BlenderSync::sync_mesh(BL::Depsgraph b_depsgraph,
|
||||
}
|
||||
}
|
||||
|
||||
/* cached velocities (e.g. from alembic archive) */
|
||||
sync_mesh_cached_velocities(b_ob, b_depsgraph.scene(), scene, mesh);
|
||||
|
||||
/* mesh fluid motion mantaflow */
|
||||
sync_mesh_fluid_motion(b_ob, scene, mesh);
|
||||
|
||||
@@ -1023,6 +1094,12 @@ void BlenderSync::sync_mesh_motion(BL::Depsgraph b_depsgraph,
|
||||
return;
|
||||
}
|
||||
|
||||
/* Cached motion blur already exported. */
|
||||
BL::MeshSequenceCacheModifier mesh_cache = object_mesh_cache_find(b_ob, b_scene);
|
||||
if (mesh_cache) {
|
||||
return;
|
||||
}
|
||||
|
||||
/* Skip if no vertices were exported. */
|
||||
size_t numverts = mesh->verts.size();
|
||||
if (numverts == 0) {
|
||||
|
@@ -59,6 +59,7 @@ BlenderSession::BlenderSession(BL::RenderEngine &b_engine,
|
||||
BL::BlendData &b_data,
|
||||
bool preview_osl)
|
||||
: session(NULL),
|
||||
scene(NULL),
|
||||
sync(NULL),
|
||||
b_engine(b_engine),
|
||||
b_userpref(b_userpref),
|
||||
@@ -88,6 +89,7 @@ BlenderSession::BlenderSession(BL::RenderEngine &b_engine,
|
||||
int width,
|
||||
int height)
|
||||
: session(NULL),
|
||||
scene(NULL),
|
||||
sync(NULL),
|
||||
b_engine(b_engine),
|
||||
b_userpref(b_userpref),
|
||||
@@ -970,7 +972,8 @@ void BlenderSession::update_status_progress()
|
||||
remaining_time = (1.0 - (double)progress) * (render_time / (double)progress);
|
||||
|
||||
if (background) {
|
||||
scene_status += " | " + scene->name;
|
||||
if (scene)
|
||||
scene_status += " | " + scene->name;
|
||||
if (b_rlay_name != "")
|
||||
scene_status += ", " + b_rlay_name;
|
||||
|
||||
|
@@ -678,7 +678,7 @@ static ShaderNode *add_node(Scene *scene,
|
||||
* builtin names for packed images and movies
|
||||
*/
|
||||
int scene_frame = b_scene.frame_current();
|
||||
int image_frame = image_user_frame_number(b_image_user, scene_frame);
|
||||
int image_frame = image_user_frame_number(b_image_user, b_image, scene_frame);
|
||||
image->handle = scene->image_manager->add_image(
|
||||
new BlenderImageLoader(b_image, image_frame), image->image_params());
|
||||
}
|
||||
@@ -713,7 +713,7 @@ static ShaderNode *add_node(Scene *scene,
|
||||
|
||||
if (is_builtin) {
|
||||
int scene_frame = b_scene.frame_current();
|
||||
int image_frame = image_user_frame_number(b_image_user, scene_frame);
|
||||
int image_frame = image_user_frame_number(b_image_user, b_image, scene_frame);
|
||||
env->handle = scene->image_manager->add_image(new BlenderImageLoader(b_image, image_frame),
|
||||
env->image_params());
|
||||
}
|
||||
|
@@ -238,7 +238,7 @@ static inline string image_user_file_path(BL::ImageUser &iuser,
|
||||
{
|
||||
char filepath[1024];
|
||||
iuser.tile(0);
|
||||
BKE_image_user_frame_calc(NULL, iuser.ptr.data, cfra);
|
||||
BKE_image_user_frame_calc(ima.ptr.data, iuser.ptr.data, cfra);
|
||||
BKE_image_user_file_path(iuser.ptr.data, ima.ptr.data, filepath);
|
||||
|
||||
string filepath_str = string(filepath);
|
||||
@@ -248,9 +248,9 @@ static inline string image_user_file_path(BL::ImageUser &iuser,
|
||||
return filepath_str;
|
||||
}
|
||||
|
||||
static inline int image_user_frame_number(BL::ImageUser &iuser, int cfra)
|
||||
static inline int image_user_frame_number(BL::ImageUser &iuser, BL::Image &ima, int cfra)
|
||||
{
|
||||
BKE_image_user_frame_calc(NULL, iuser.ptr.data, cfra);
|
||||
BKE_image_user_frame_calc(ima.ptr.data, iuser.ptr.data, cfra);
|
||||
return iuser.frame_current();
|
||||
}
|
||||
|
||||
|
@@ -217,43 +217,29 @@ static void sync_smoke_volume(Scene *scene, BL::Object &b_ob, Mesh *mesh, float
|
||||
class BlenderVolumeLoader : public VDBImageLoader {
|
||||
public:
|
||||
BlenderVolumeLoader(BL::BlendData &b_data, BL::Volume &b_volume, const string &grid_name)
|
||||
: VDBImageLoader(grid_name), b_data(b_data), b_volume(b_volume), unload(false)
|
||||
{
|
||||
}
|
||||
|
||||
bool load_metadata(ImageMetaData &metadata) override
|
||||
: VDBImageLoader(grid_name), b_volume(b_volume)
|
||||
{
|
||||
b_volume.grids.load(b_data.ptr.data);
|
||||
BL::VolumeGrid b_volume_grid = find_grid();
|
||||
|
||||
if (!b_volume_grid) {
|
||||
return false;
|
||||
}
|
||||
|
||||
unload = !b_volume_grid.is_loaded();
|
||||
|
||||
#ifdef WITH_OPENVDB
|
||||
Volume *volume = (Volume *)b_volume.ptr.data;
|
||||
VolumeGrid *volume_grid = (VolumeGrid *)b_volume_grid.ptr.data;
|
||||
grid = BKE_volume_grid_openvdb_for_read(volume, volume_grid);
|
||||
#endif
|
||||
BL::Volume::grids_iterator b_grid_iter;
|
||||
for (b_volume.grids.begin(b_grid_iter); b_grid_iter != b_volume.grids.end(); ++b_grid_iter) {
|
||||
BL::VolumeGrid b_volume_grid(*b_grid_iter);
|
||||
if (b_volume_grid.name() == grid_name) {
|
||||
const bool unload = !b_volume_grid.is_loaded();
|
||||
|
||||
return VDBImageLoader::load_metadata(metadata);
|
||||
}
|
||||
Volume *volume = (Volume *)b_volume.ptr.data;
|
||||
VolumeGrid *volume_grid = (VolumeGrid *)b_volume_grid.ptr.data;
|
||||
grid = BKE_volume_grid_openvdb_for_read(volume, volume_grid);
|
||||
|
||||
bool load_pixels(const ImageMetaData &metadata,
|
||||
void *pixels,
|
||||
const size_t pixel_size,
|
||||
const bool associate_alpha) override
|
||||
{
|
||||
b_volume.grids.load(b_data.ptr.data);
|
||||
BL::VolumeGrid b_volume_grid = find_grid();
|
||||
if (unload) {
|
||||
b_volume_grid.unload();
|
||||
}
|
||||
|
||||
if (!b_volume_grid) {
|
||||
return false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return VDBImageLoader::load_pixels(metadata, pixels, pixel_size, associate_alpha);
|
||||
#endif
|
||||
}
|
||||
|
||||
bool equals(const ImageLoader &other) const override
|
||||
@@ -263,36 +249,7 @@ class BlenderVolumeLoader : public VDBImageLoader {
|
||||
return b_volume == other_loader.b_volume && grid_name == other_loader.grid_name;
|
||||
}
|
||||
|
||||
void cleanup() override
|
||||
{
|
||||
VDBImageLoader::cleanup();
|
||||
|
||||
BL::VolumeGrid b_volume_grid = find_grid();
|
||||
if (b_volume_grid && unload) {
|
||||
b_volume_grid.unload();
|
||||
}
|
||||
}
|
||||
|
||||
/* Find grid with matching name. Grid point not stored in the class since
|
||||
* grids may be unloaded before we load the pixels, for example for motion
|
||||
* blur where we move between frames. */
|
||||
BL::VolumeGrid find_grid()
|
||||
{
|
||||
#ifdef WITH_OPENVDB
|
||||
BL::Volume::grids_iterator b_grid_iter;
|
||||
for (b_volume.grids.begin(b_grid_iter); b_grid_iter != b_volume.grids.end(); ++b_grid_iter) {
|
||||
if (b_grid_iter->name() == grid_name) {
|
||||
return *b_grid_iter;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
|
||||
return BL::VolumeGrid(PointerRNA_NULL);
|
||||
}
|
||||
|
||||
BL::BlendData b_data;
|
||||
BL::Volume b_volume;
|
||||
bool unload;
|
||||
};
|
||||
|
||||
static void sync_volume_object(BL::BlendData &b_data, BL::Object &b_ob, Scene *scene, Mesh *mesh)
|
||||
@@ -342,7 +299,7 @@ static void sync_volume_object(BL::BlendData &b_data, BL::Object &b_ob, Scene *s
|
||||
ImageParams params;
|
||||
params.frame = b_volume.grids.frame();
|
||||
|
||||
attr->data_voxel() = scene->image_manager->add_image(loader, params);
|
||||
attr->data_voxel() = scene->image_manager->add_image(loader, params, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -445,4 +445,4 @@ ccl_device float background_light_pdf(KernelGlobals *kg, float3 P, float3 direct
|
||||
|
||||
#endif
|
||||
|
||||
CCL_NAMESPACE_END
|
||||
CCL_NAMESPACE_END
|
||||
|
@@ -484,8 +484,8 @@ void ShaderGraph::remove_proxy_nodes()
|
||||
vector<ShaderInput *> links(output->links);
|
||||
|
||||
foreach (ShaderInput *to, links) {
|
||||
/* remove any autoconvert nodes too if they lead to
|
||||
* sockets with an automatically set default value */
|
||||
/* Remove any auto-convert nodes too if they lead to
|
||||
* sockets with an automatically set default value. */
|
||||
ShaderNode *tonode = to->parent;
|
||||
|
||||
if (tonode->special_type == SHADER_SPECIAL_TYPE_AUTOCONVERT) {
|
||||
|
@@ -362,9 +362,11 @@ ImageHandle ImageManager::add_image(const string &filename,
|
||||
return handle;
|
||||
}
|
||||
|
||||
ImageHandle ImageManager::add_image(ImageLoader *loader, const ImageParams ¶ms)
|
||||
ImageHandle ImageManager::add_image(ImageLoader *loader,
|
||||
const ImageParams ¶ms,
|
||||
const bool builtin)
|
||||
{
|
||||
const int slot = add_image_slot(loader, params, true);
|
||||
const int slot = add_image_slot(loader, params, builtin);
|
||||
|
||||
ImageHandle handle;
|
||||
handle.tile_slots.push_back(slot);
|
||||
|
@@ -169,7 +169,7 @@ class ImageManager {
|
||||
ImageHandle add_image(const string &filename,
|
||||
const ImageParams ¶ms,
|
||||
const vector<int> &tiles);
|
||||
ImageHandle add_image(ImageLoader *loader, const ImageParams ¶ms);
|
||||
ImageHandle add_image(ImageLoader *loader, const ImageParams ¶ms, const bool builtin = true);
|
||||
|
||||
void device_update(Device *device, Scene *scene, Progress &progress);
|
||||
void device_update_slot(Device *device, Scene *scene, int slot, Progress *progress);
|
||||
|
@@ -945,8 +945,14 @@ void Session::set_pause(bool pause_)
|
||||
}
|
||||
}
|
||||
|
||||
if (notify)
|
||||
pause_cond.notify_all();
|
||||
if (session_thread) {
|
||||
if (notify) {
|
||||
pause_cond.notify_all();
|
||||
}
|
||||
}
|
||||
else if (pause_) {
|
||||
update_status_time(pause_);
|
||||
}
|
||||
}
|
||||
|
||||
void Session::set_denoising(const DenoiseParams &denoising)
|
||||
|
@@ -112,3 +112,4 @@ set_source_files_properties(util_avxf_avx_test.cpp PROPERTIES COMPILE_FLAGS "${C
|
||||
CYCLES_TEST(util_avxf_avx "cycles_util;bf_intern_numaapi;${OPENIMAGEIO_LIBRARIES};${BOOST_LIBRARIES}")
|
||||
set_source_files_properties(util_avxf_avx2_test.cpp PROPERTIES COMPILE_FLAGS "${CYCLES_AVX2_KERNEL_FLAGS}")
|
||||
CYCLES_TEST(util_avxf_avx2 "cycles_util;bf_intern_numaapi;${OPENIMAGEIO_LIBRARIES};${BOOST_LIBRARIES}")
|
||||
CYCLES_TEST(util_transform "cycles_util;${OPENIMAGEIO_LIBRARIES};${BOOST_LIBRARIES}")
|
||||
|
53
intern/cycles/test/util_transform_test.cpp
Normal file
53
intern/cycles/test/util_transform_test.cpp
Normal file
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Copyright 2011-2020 Blender Foundation
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||
* you may not use this file except in compliance with the License.
|
||||
* You may obtain a copy of the License at
|
||||
*
|
||||
* http://www.apache.org/licenses/LICENSE-2.0
|
||||
*
|
||||
* Unless required by applicable law or agreed to in writing, software
|
||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
* See the License for the specific language governing permissions and
|
||||
* limitations under the License.
|
||||
*/
|
||||
|
||||
#include "testing/testing.h"
|
||||
|
||||
#include "util/util_transform.h"
|
||||
#include "util/util_vector.h"
|
||||
|
||||
CCL_NAMESPACE_BEGIN
|
||||
|
||||
TEST(transform_motion_decompose, Degenerated)
|
||||
{
|
||||
// Simple case: single degenerated matrix.
|
||||
{
|
||||
vector<Transform> motion = {transform_scale(0.0f, 0.0f, 0.0f)};
|
||||
vector<DecomposedTransform> decomp(motion.size());
|
||||
transform_motion_decompose(decomp.data(), motion.data(), motion.size());
|
||||
EXPECT_TRUE(transform_decomposed_isfinite_safe(&decomp[0]));
|
||||
}
|
||||
|
||||
// Copy from previous to current.
|
||||
{
|
||||
vector<Transform> motion = {transform_rotate(M_PI_4_F, make_float3(1.0f, 1.0f, 1.0f)),
|
||||
transform_scale(0.0f, 0.0f, 0.0f)};
|
||||
vector<DecomposedTransform> decomp(motion.size());
|
||||
transform_motion_decompose(decomp.data(), motion.data(), motion.size());
|
||||
EXPECT_NEAR(len(decomp[1].x - decomp[0].x), 0.0f, 1e-6f);
|
||||
}
|
||||
|
||||
// Copy from next to current.
|
||||
{
|
||||
vector<Transform> motion = {transform_scale(0.0f, 0.0f, 0.0f),
|
||||
transform_rotate(M_PI_4_F, make_float3(1.0f, 1.0f, 1.0f))};
|
||||
vector<DecomposedTransform> decomp(motion.size());
|
||||
transform_motion_decompose(decomp.data(), motion.data(), motion.size());
|
||||
EXPECT_NEAR(len(decomp[0].x - decomp[1].x), 0.0f, 1e-6f);
|
||||
}
|
||||
}
|
||||
|
||||
CCL_NAMESPACE_END
|
@@ -57,7 +57,7 @@ struct avxb {
|
||||
: m256(_mm256_insertf128_ps(_mm256_castps128_ps256(a), b, 1))
|
||||
{
|
||||
}
|
||||
__forceinline operator const __m256 &(void)const
|
||||
__forceinline operator const __m256 &(void) const
|
||||
{
|
||||
return m256;
|
||||
}
|
||||
|
@@ -54,7 +54,7 @@ struct avxi {
|
||||
__forceinline avxi(const __m256i a) : m256(a)
|
||||
{
|
||||
}
|
||||
__forceinline operator const __m256i &(void)const
|
||||
__forceinline operator const __m256i &(void) const
|
||||
{
|
||||
return m256;
|
||||
}
|
||||
|
@@ -87,7 +87,7 @@ ccl_device_inline int fast_rint(float x)
|
||||
/* Single roundps instruction on SSE4.1+ (for gcc/clang at least). */
|
||||
return float_to_int(rintf(x));
|
||||
#else
|
||||
/* emulate rounding by adding/substracting 0.5. */
|
||||
/* emulate rounding by adding/subtracting 0.5. */
|
||||
return float_to_int(x + copysignf(0.5f, x));
|
||||
#endif
|
||||
}
|
||||
@@ -445,12 +445,10 @@ ccl_device_inline float fast_expf(float x)
|
||||
return fast_exp2f(x / M_LN2_F);
|
||||
}
|
||||
|
||||
#ifndef __KERNEL_GPU__
|
||||
/* MSVC seems to have a code-gen bug here in at least SSE41/AVX
|
||||
* see T78047 for details. */
|
||||
# ifdef _MSC_VER
|
||||
# pragma optimize("", off)
|
||||
# endif
|
||||
#if defined(__KERNEL_CPU__) && !defined(_MSC_VER)
|
||||
/* MSVC seems to have a code-gen bug here in at least SSE41/AVX, see
|
||||
* T78047 and T78869 for details. Just disable for now, it only makes
|
||||
* a small difference in denoising performance. */
|
||||
ccl_device float4 fast_exp2f4(float4 x)
|
||||
{
|
||||
const float4 one = make_float4(1.0f);
|
||||
@@ -466,14 +464,16 @@ ccl_device float4 fast_exp2f4(float4 x)
|
||||
r = madd4(x, r, make_float4(1.0f));
|
||||
return __int4_as_float4(__float4_as_int4(r) + (m << 23));
|
||||
}
|
||||
# ifdef _MSC_VER
|
||||
# pragma optimize("", on)
|
||||
# endif
|
||||
|
||||
ccl_device_inline float4 fast_expf4(float4 x)
|
||||
{
|
||||
return fast_exp2f4(x / M_LN2_F);
|
||||
}
|
||||
#else
|
||||
ccl_device_inline float4 fast_expf4(float4 x)
|
||||
{
|
||||
return make_float4(fast_expf(x.x), fast_expf(x.y), fast_expf(x.z), fast_expf(x.w));
|
||||
}
|
||||
#endif
|
||||
|
||||
ccl_device_inline float fast_exp10(float x)
|
||||
|
@@ -477,6 +477,24 @@ ccl_device_inline float4 safe_divide_float4_float(const float4 a, const float b)
|
||||
return (b != 0.0f) ? a / b : make_float4(0.0f, 0.0f, 0.0f, 0.0f);
|
||||
}
|
||||
|
||||
ccl_device_inline bool isfinite4_safe(float4 v)
|
||||
{
|
||||
return isfinite_safe(v.x) && isfinite_safe(v.y) && isfinite_safe(v.z) && isfinite_safe(v.w);
|
||||
}
|
||||
|
||||
ccl_device_inline float4 ensure_finite4(float4 v)
|
||||
{
|
||||
if (!isfinite_safe(v.x))
|
||||
v.x = 0.0f;
|
||||
if (!isfinite_safe(v.y))
|
||||
v.y = 0.0f;
|
||||
if (!isfinite_safe(v.z))
|
||||
v.z = 0.0f;
|
||||
if (!isfinite_safe(v.w))
|
||||
v.w = 0.0f;
|
||||
return v;
|
||||
}
|
||||
|
||||
CCL_NAMESPACE_END
|
||||
|
||||
#endif /* __UTIL_MATH_FLOAT4_H__ */
|
||||
|
@@ -57,7 +57,7 @@ struct sseb {
|
||||
__forceinline sseb(const __m128 input) : m128(input)
|
||||
{
|
||||
}
|
||||
__forceinline operator const __m128 &(void)const
|
||||
__forceinline operator const __m128 &(void) const
|
||||
{
|
||||
return m128;
|
||||
}
|
||||
|
@@ -57,7 +57,7 @@ struct ssei {
|
||||
__forceinline ssei(const __m128i a) : m128(a)
|
||||
{
|
||||
}
|
||||
__forceinline operator const __m128i &(void)const
|
||||
__forceinline operator const __m128i &(void) const
|
||||
{
|
||||
return m128;
|
||||
}
|
||||
|
@@ -269,17 +269,17 @@ static void transform_decompose(DecomposedTransform *decomp, const Transform *tf
|
||||
/* extract scale and shear first */
|
||||
float3 scale, shear;
|
||||
scale.x = len(colx);
|
||||
colx /= scale.x;
|
||||
colx = safe_divide_float3_float(colx, scale.x);
|
||||
shear.z = dot(colx, coly);
|
||||
coly -= shear.z * colx;
|
||||
scale.y = len(coly);
|
||||
coly /= scale.y;
|
||||
coly = safe_divide_float3_float(coly, scale.y);
|
||||
shear.y = dot(colx, colz);
|
||||
colz -= shear.y * colx;
|
||||
shear.x = dot(coly, colz);
|
||||
colz -= shear.x * coly;
|
||||
scale.z = len(colz);
|
||||
colz /= scale.z;
|
||||
colz = safe_divide_float3_float(colz, scale.z);
|
||||
|
||||
transform_set_column(&M, 0, colx);
|
||||
transform_set_column(&M, 1, coly);
|
||||
@@ -300,6 +300,7 @@ static void transform_decompose(DecomposedTransform *decomp, const Transform *tf
|
||||
|
||||
void transform_motion_decompose(DecomposedTransform *decomp, const Transform *motion, size_t size)
|
||||
{
|
||||
/* Decompose and correct rotation. */
|
||||
for (size_t i = 0; i < size; i++) {
|
||||
transform_decompose(decomp + i, motion + i);
|
||||
|
||||
@@ -310,6 +311,27 @@ void transform_motion_decompose(DecomposedTransform *decomp, const Transform *mo
|
||||
decomp[i].x = -decomp[i].x;
|
||||
}
|
||||
}
|
||||
|
||||
/* Copy rotation to decomposed transform where scale is degenerate. This avoids weird object
|
||||
* rotation interpolation when the scale goes to 0 for a time step.
|
||||
*
|
||||
* Note that this is very simple and naive implementation, which only deals with degenerated
|
||||
* scale happening only on one frame. It is possible to improve it further by interpolating
|
||||
* rotation into s degenerated range using rotation from time-steps from adjacent non-degenerated
|
||||
* time steps. */
|
||||
for (size_t i = 0; i < size; i++) {
|
||||
const float3 scale = make_float3(decomp[i].y.w, decomp[i].z.w, decomp[i].w.w);
|
||||
if (!is_zero(scale)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (i > 0) {
|
||||
decomp[i].x = decomp[i - 1].x;
|
||||
}
|
||||
else if (i < size - 1) {
|
||||
decomp[i].x = decomp[i + 1].x;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Transform transform_from_viewplane(BoundBox2D &viewplane)
|
||||
|
@@ -466,6 +466,17 @@ ccl_device void transform_motion_array_interpolate(Transform *tfm,
|
||||
transform_compose(tfm, &decomp);
|
||||
}
|
||||
|
||||
ccl_device_inline bool transform_isfinite_safe(Transform *tfm)
|
||||
{
|
||||
return isfinite4_safe(tfm->x) && isfinite4_safe(tfm->y) && isfinite4_safe(tfm->z);
|
||||
}
|
||||
|
||||
ccl_device_inline bool transform_decomposed_isfinite_safe(DecomposedTransform *decomp)
|
||||
{
|
||||
return isfinite4_safe(decomp->x) && isfinite4_safe(decomp->y) && isfinite4_safe(decomp->z) &&
|
||||
isfinite4_safe(decomp->w);
|
||||
}
|
||||
|
||||
#ifndef __KERNEL_GPU__
|
||||
|
||||
class BoundBox2D;
|
||||
|
@@ -21,8 +21,7 @@
|
||||
* \brief GHOST C-API function and type declarations.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_C_API_H__
|
||||
#define __GHOST_C_API_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_Types.h"
|
||||
|
||||
@@ -1072,5 +1071,3 @@ GHOST_TSuccess GHOST_XrEventsHandle(GHOST_XrContextHandle xr_context);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@@ -22,8 +22,7 @@
|
||||
* Declaration of GHOST_IContext interface class.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_IContext_H__
|
||||
#define __GHOST_IContext_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_Types.h"
|
||||
|
||||
@@ -63,5 +62,3 @@ class GHOST_IContext {
|
||||
MEM_CXX_CLASS_ALLOC_FUNCS("GHOST:GHOST_IContext")
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif // __GHOST_IContext_H__
|
||||
|
@@ -22,8 +22,7 @@
|
||||
* Declaration of GHOST_IEvent interface class.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_IEVENT_H__
|
||||
#define __GHOST_IEVENT_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_Types.h"
|
||||
#include <stddef.h>
|
||||
@@ -78,5 +77,3 @@ class GHOST_IEvent {
|
||||
MEM_CXX_CLASS_ALLOC_FUNCS("GHOST:GHOST_IEvent")
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif // __GHOST_IEVENT_H__
|
||||
|
@@ -22,8 +22,7 @@
|
||||
* Declaration of GHOST_IEventConsumer interface class.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_IEVENTCONSUMER_H__
|
||||
#define __GHOST_IEVENTCONSUMER_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_IEvent.h"
|
||||
|
||||
@@ -56,5 +55,3 @@ class GHOST_IEventConsumer {
|
||||
MEM_CXX_CLASS_ALLOC_FUNCS("GHOST:GHOST_IEventConsumer")
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif /* __GHOST_IEVENTCONSUMER_H__ */
|
||||
|
@@ -24,8 +24,7 @@
|
||||
* Contains the doxygen documentation main page.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_ISYSTEM_H__
|
||||
#define __GHOST_ISYSTEM_H__
|
||||
#pragma once
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
@@ -494,5 +493,3 @@ class GHOST_ISystem {
|
||||
MEM_CXX_CLASS_ALLOC_FUNCS("GHOST:GHOST_ISystem")
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif // __GHOST_ISYSTEM_H__
|
||||
|
@@ -21,8 +21,7 @@
|
||||
* \ingroup GHOST
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_ISYSTEMPATHS_H__
|
||||
#define __GHOST_ISYSTEMPATHS_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_Types.h"
|
||||
|
||||
@@ -97,5 +96,3 @@ class GHOST_ISystemPaths {
|
||||
MEM_CXX_CLASS_ALLOC_FUNCS("GHOST:GHOST_ISystemPaths")
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -22,8 +22,7 @@
|
||||
* Declaration of GHOST_ITimerTask interface class.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_ITIMERTASK_H__
|
||||
#define __GHOST_ITIMERTASK_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_Types.h"
|
||||
|
||||
@@ -76,5 +75,3 @@ class GHOST_ITimerTask {
|
||||
MEM_CXX_CLASS_ALLOC_FUNCS("GHOST:GHOST_ITimerTask")
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif // __GHOST_ITIMERTASK_H__
|
||||
|
@@ -22,8 +22,7 @@
|
||||
* Declaration of GHOST_IWindow interface class.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_IWINDOW_H__
|
||||
#define __GHOST_IWINDOW_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_Rect.h"
|
||||
#include "GHOST_Types.h"
|
||||
@@ -363,5 +362,3 @@ class GHOST_IWindow {
|
||||
MEM_CXX_CLASS_ALLOC_FUNCS("GHOST:GHOST_IWindow")
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif // __GHOST_IWINDOW_H__
|
||||
|
@@ -18,8 +18,7 @@
|
||||
* \ingroup GHOST
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_IXRCONTEXT_H__
|
||||
#define __GHOST_IXRCONTEXT_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_Types.h"
|
||||
|
||||
@@ -40,5 +39,3 @@ class GHOST_IXrContext {
|
||||
|
||||
virtual bool needsUpsideDownDrawing() const = 0;
|
||||
};
|
||||
|
||||
#endif // __GHOST_IXRCONTEXT_H__
|
||||
|
@@ -21,8 +21,7 @@
|
||||
* \ingroup GHOST
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_PATH_API_H__
|
||||
#define __GHOST_PATH_API_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_Types.h"
|
||||
|
||||
@@ -71,5 +70,3 @@ extern void GHOST_addToSystemRecentFiles(const char *filename);
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@@ -22,8 +22,7 @@
|
||||
* Macro's used in GHOST debug target.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_RECT_H__
|
||||
#define __GHOST_RECT_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_Types.h"
|
||||
|
||||
@@ -263,5 +262,3 @@ inline bool GHOST_Rect::isInside(GHOST_TInt32 x, GHOST_TInt32 y) const
|
||||
{
|
||||
return (x >= m_l) && (x <= m_r) && (y >= m_t) && (y <= m_b);
|
||||
}
|
||||
|
||||
#endif // __GHOST_RECT_H__
|
||||
|
@@ -21,8 +21,7 @@
|
||||
* \ingroup GHOST
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_TYPES_H__
|
||||
#define __GHOST_TYPES_H__
|
||||
#pragma once
|
||||
|
||||
#ifdef WITH_CXX_GUARDEDALLOC
|
||||
# include "MEM_guardedalloc.h"
|
||||
@@ -677,5 +676,3 @@ typedef struct GHOST_XrError {
|
||||
} GHOST_XrError;
|
||||
|
||||
#endif
|
||||
|
||||
#endif // __GHOST_TYPES_H__
|
||||
|
@@ -22,8 +22,7 @@
|
||||
* Declaration of GHOST_Buttons struct.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_BUTTONS_H__
|
||||
#define __GHOST_BUTTONS_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_Types.h"
|
||||
|
||||
@@ -62,5 +61,3 @@ struct GHOST_Buttons {
|
||||
GHOST_TUns8 m_ButtonMiddle : 1;
|
||||
GHOST_TUns8 m_ButtonRight : 1;
|
||||
};
|
||||
|
||||
#endif // __GHOST_BUTTONS_H__
|
||||
|
@@ -22,8 +22,7 @@
|
||||
* Declaration of GHOST_CallbackEventConsumer class.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_CALLBACKEVENTCONSUMER_H__
|
||||
#define __GHOST_CALLBACKEVENTCONSUMER_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_C-api.h"
|
||||
#include "GHOST_IEventConsumer.h"
|
||||
@@ -66,5 +65,3 @@ class GHOST_CallbackEventConsumer : public GHOST_IEventConsumer {
|
||||
MEM_CXX_CLASS_ALLOC_FUNCS("GHOST:GHOST_CallbackEventConsumer")
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif // __GHOST_CALLBACKEVENTCONSUMER_H__
|
||||
|
@@ -22,8 +22,7 @@
|
||||
* Declaration of GHOST_Context class.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_CONTEXT_H__
|
||||
#define __GHOST_CONTEXT_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_IContext.h"
|
||||
#include "GHOST_Types.h"
|
||||
@@ -160,5 +159,3 @@ bool win32_silent_chk(bool result);
|
||||
|
||||
# define WIN32_CHK_SILENT(x, silent) ((silent) ? win32_silent_chk(x) : WIN32_CHK(x))
|
||||
#endif /* _WIN32 */
|
||||
|
||||
#endif // __GHOST_CONTEXT_H__
|
||||
|
@@ -21,8 +21,7 @@
|
||||
* \ingroup GHOST
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_CONTEXTCGL_H__
|
||||
#define __GHOST_CONTEXTCGL_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_Context.h"
|
||||
|
||||
@@ -137,5 +136,3 @@ class GHOST_ContextCGL : public GHOST_Context {
|
||||
void metalUpdateFramebuffer();
|
||||
void metalSwapBuffers();
|
||||
};
|
||||
|
||||
#endif // __GHOST_CONTEXTCGL_H__
|
||||
|
@@ -18,8 +18,7 @@
|
||||
* \ingroup GHOST
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_CONTEXTD3D_H__
|
||||
#define __GHOST_CONTEXTD3D_H__
|
||||
#pragma once
|
||||
|
||||
#ifndef WIN32
|
||||
# error WIN32 only!
|
||||
@@ -132,5 +131,3 @@ class GHOST_ContextD3D : public GHOST_Context {
|
||||
ID3D11Device *m_device;
|
||||
ID3D11DeviceContext *m_device_ctx;
|
||||
};
|
||||
|
||||
#endif /* __GHOST_CONTEXTD3D_H__ */
|
||||
|
@@ -118,7 +118,7 @@ static const char *get_egl_error_message_string(EGLint error)
|
||||
case EGL_CONTEXT_LOST:
|
||||
return (
|
||||
"A power management event has occurred. "
|
||||
"The application must destroy all contexts and reinitialise OpenGL ES state "
|
||||
"The application must destroy all contexts and reinitialize OpenGL ES state "
|
||||
"and objects to continue rendering.");
|
||||
|
||||
default:
|
||||
|
@@ -21,8 +21,7 @@
|
||||
* \ingroup GHOST
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_CONTEXTEGL_H__
|
||||
#define __GHOST_CONTEXTEGL_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_Context.h"
|
||||
|
||||
@@ -137,5 +136,3 @@ class GHOST_ContextEGL : public GHOST_Context {
|
||||
static HMODULE s_d3dcompiler;
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif // __GHOST_CONTEXTEGL_H__
|
||||
|
@@ -21,8 +21,7 @@
|
||||
* \ingroup GHOST
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_CONTEXTGLX_H__
|
||||
#define __GHOST_CONTEXTGLX_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_Context.h"
|
||||
|
||||
@@ -128,5 +127,3 @@ class GHOST_ContextGLX : public GHOST_Context {
|
||||
/* used to get GLX info */
|
||||
int GHOST_X11_GL_GetAttributes(
|
||||
int *attribs, int attribs_max, bool is_stereo_visual, bool need_alpha, bool for_fb_config);
|
||||
|
||||
#endif // __GHOST_CONTEXTGLX_H__
|
||||
|
@@ -23,8 +23,7 @@
|
||||
* Declaration of GHOST_Context class.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_CONTEXTNONE_H__
|
||||
#define __GHOST_CONTEXTNONE_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_Context.h"
|
||||
|
||||
@@ -86,5 +85,3 @@ class GHOST_ContextNone : public GHOST_Context {
|
||||
private:
|
||||
int m_swapInterval;
|
||||
};
|
||||
|
||||
#endif // __GHOST_CONTEXTNONE_H__
|
||||
|
@@ -21,8 +21,7 @@
|
||||
* \ingroup GHOST
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_CONTEXTSDL_H__
|
||||
#define __GHOST_CONTEXTSDL_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_Context.h"
|
||||
|
||||
@@ -121,5 +120,3 @@ class GHOST_ContextSDL : public GHOST_Context {
|
||||
static SDL_GLContext s_sharedContext;
|
||||
static int s_sharedCount;
|
||||
};
|
||||
|
||||
#endif // __GHOST_CONTEXTSDL_H__
|
||||
|
@@ -21,8 +21,7 @@
|
||||
* \ingroup GHOST
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_CONTEXTWGL_H__
|
||||
#define __GHOST_CONTEXTWGL_H__
|
||||
#pragma once
|
||||
|
||||
//#define WIN32_COMPOSITING
|
||||
|
||||
@@ -130,5 +129,3 @@ class GHOST_ContextWGL : public GHOST_Context {
|
||||
static HGLRC s_sharedHGLRC;
|
||||
static int s_sharedCount;
|
||||
};
|
||||
|
||||
#endif // __GHOST_CONTEXTWGL_H__
|
||||
|
@@ -22,8 +22,7 @@
|
||||
* Macro's used in GHOST debug target.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_DEBUG_H__
|
||||
#define __GHOST_DEBUG_H__
|
||||
#pragma once
|
||||
|
||||
#ifdef _MSC_VER
|
||||
# ifdef DEBUG
|
||||
@@ -79,5 +78,3 @@
|
||||
#else // WITH_GHOST_DEBUG
|
||||
# define GHOST_ASSERT(x, info) ((void)0)
|
||||
#endif // WITH_GHOST_DEBUG
|
||||
|
||||
#endif // __GHOST_DEBUG_H__
|
||||
|
@@ -22,8 +22,7 @@
|
||||
* Declaration of GHOST_DisplayManager class.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_DISPLAYMANAGER_H__
|
||||
#define __GHOST_DISPLAYMANAGER_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_Types.h"
|
||||
|
||||
@@ -127,5 +126,3 @@ class GHOST_DisplayManager {
|
||||
MEM_CXX_CLASS_ALLOC_FUNCS("GHOST:GHOST_DisplayManager")
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif // __GHOST_DISPLAYMANAGER_H__
|
||||
|
@@ -22,8 +22,7 @@
|
||||
* Declaration of GHOST_DisplayManagerCocoa class.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_DISPLAYMANAGERCOCOA_H__
|
||||
#define __GHOST_DISPLAYMANAGERCOCOA_H__
|
||||
#pragma once
|
||||
|
||||
#ifndef __APPLE__
|
||||
# error Apple only!
|
||||
@@ -93,5 +92,3 @@ class GHOST_DisplayManagerCocoa : public GHOST_DisplayManager {
|
||||
/** Cached display id's for each display. */
|
||||
// CGDirectDisplayID* m_displayIDs;
|
||||
};
|
||||
|
||||
#endif // __GHOST_DISPLAYMANAGERCOCOA_H__
|
||||
|
@@ -19,8 +19,7 @@
|
||||
* Declaration of GHOST_DisplayManagerNULL class.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_DISPLAYMANAGERNULL_H__
|
||||
#define __GHOST_DISPLAYMANAGERNULL_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_DisplayManager.h"
|
||||
#include "GHOST_SystemNULL.h"
|
||||
@@ -58,5 +57,3 @@ class GHOST_DisplayManagerNULL : public GHOST_DisplayManager {
|
||||
private:
|
||||
GHOST_SystemNULL *m_system;
|
||||
};
|
||||
|
||||
#endif /* __GHOST_DISPLAYMANAGERNULL_H__ */
|
||||
|
@@ -19,8 +19,7 @@
|
||||
* Declaration of GHOST_DisplayManagerSDL class.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_DISPLAYMANAGERSDL_H__
|
||||
#define __GHOST_DISPLAYMANAGERSDL_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_DisplayManager.h"
|
||||
|
||||
@@ -58,5 +57,3 @@ class GHOST_DisplayManagerSDL : public GHOST_DisplayManager {
|
||||
GHOST_SystemSDL *m_system;
|
||||
SDL_DisplayMode m_mode;
|
||||
};
|
||||
|
||||
#endif /* __GHOST_DISPLAYMANAGERSDL_H__ */
|
||||
|
@@ -22,8 +22,7 @@
|
||||
* Declaration of GHOST_DisplayManagerWin32 class.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_DISPLAYMANAGERWIN32_H__
|
||||
#define __GHOST_DISPLAYMANAGERWIN32_H__
|
||||
#pragma once
|
||||
|
||||
#ifndef WIN32
|
||||
# error WIN32 only!
|
||||
@@ -87,5 +86,3 @@ class GHOST_DisplayManagerWin32 : public GHOST_DisplayManager {
|
||||
|
||||
protected:
|
||||
};
|
||||
|
||||
#endif // __GHOST_DISPLAYMANAGERWIN32_H__
|
||||
|
@@ -22,8 +22,7 @@
|
||||
* Declaration of GHOST_DisplayManagerX11 class.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_DISPLAYMANAGERX11_H__
|
||||
#define __GHOST_DISPLAYMANAGERX11_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_DisplayManager.h"
|
||||
|
||||
@@ -86,5 +85,3 @@ class GHOST_DisplayManagerX11 : public GHOST_DisplayManager {
|
||||
private:
|
||||
GHOST_SystemX11 *m_system;
|
||||
};
|
||||
|
||||
#endif //
|
||||
|
@@ -21,8 +21,7 @@
|
||||
* \ingroup GHOST
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_DROPTARGETWIN32_H__
|
||||
#define __GHOST_DROPTARGETWIN32_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_SystemWin32.h"
|
||||
#include "GHOST_WindowWin32.h"
|
||||
@@ -150,5 +149,3 @@ class GHOST_DropTargetWin32 : public IDropTarget {
|
||||
MEM_CXX_CLASS_ALLOC_FUNCS("GHOST:GHOST_DropTargetWin32")
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif // __GHOST_DROPTARGETWIN32_H__
|
||||
|
@@ -21,8 +21,7 @@
|
||||
* \ingroup GHOST
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_DROPTARGETX11_H__
|
||||
#define __GHOST_DROPTARGETX11_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_SystemX11.h"
|
||||
#include "GHOST_WindowX11.h"
|
||||
@@ -126,5 +125,3 @@ class GHOST_DropTargetX11 {
|
||||
MEM_CXX_CLASS_ALLOC_FUNCS("GHOST:GHOST_DropTargetX11")
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif // __GHOST_DROPTARGETX11_H__
|
||||
|
@@ -22,8 +22,7 @@
|
||||
* Declaration of GHOST_Event class.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_EVENT_H__
|
||||
#define __GHOST_EVENT_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_IEvent.h"
|
||||
|
||||
@@ -90,5 +89,3 @@ class GHOST_Event : public GHOST_IEvent {
|
||||
/** Pointer to the event data. */
|
||||
GHOST_TEventDataPtr m_data;
|
||||
};
|
||||
|
||||
#endif // __GHOST_EVENT_H__
|
||||
|
@@ -22,8 +22,7 @@
|
||||
* Declaration of GHOST_EventButton class.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_EVENTBUTTON_H__
|
||||
#define __GHOST_EVENTBUTTON_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_Event.h"
|
||||
#include "GHOST_Window.h"
|
||||
@@ -57,5 +56,3 @@ class GHOST_EventButton : public GHOST_Event {
|
||||
/** The button event data. */
|
||||
GHOST_TEventButtonData m_buttonEventData;
|
||||
};
|
||||
|
||||
#endif // __GHOST_EVENTBUTTON_H__
|
||||
|
@@ -22,8 +22,7 @@
|
||||
* Declaration of GHOST_EventCursor class.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_EVENTCURSOR_H__
|
||||
#define __GHOST_EVENTCURSOR_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_Event.h"
|
||||
|
||||
@@ -58,5 +57,3 @@ class GHOST_EventCursor : public GHOST_Event {
|
||||
/** The x,y-coordinates of the cursor position. */
|
||||
GHOST_TEventCursorData m_cursorEventData;
|
||||
};
|
||||
|
||||
#endif // __GHOST_EVENTCURSOR_H__
|
||||
|
@@ -21,8 +21,7 @@
|
||||
* \ingroup GHOST
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_EVENTDRAGNDROP_H__
|
||||
#define __GHOST_EVENTDRAGNDROP_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_Event.h"
|
||||
extern "C" {
|
||||
@@ -122,5 +121,3 @@ class GHOST_EventDragnDrop : public GHOST_Event {
|
||||
/** The x,y-coordinates of the cursor position. */
|
||||
GHOST_TEventDragnDropData m_dragnDropEventData;
|
||||
};
|
||||
|
||||
#endif // __GHOST_EVENTDRAGNDROP_H__
|
||||
|
@@ -22,8 +22,7 @@
|
||||
* Declaration of GHOST_EventKey class.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_EVENTKEY_H__
|
||||
#define __GHOST_EVENTKEY_H__
|
||||
#pragma once
|
||||
|
||||
#include <string.h>
|
||||
|
||||
@@ -84,5 +83,3 @@ class GHOST_EventKey : public GHOST_Event {
|
||||
/** The key event data. */
|
||||
GHOST_TEventKeyData m_keyEventData;
|
||||
};
|
||||
|
||||
#endif // __GHOST_EVENTKEY_H__
|
||||
|
@@ -22,8 +22,7 @@
|
||||
* Declaration of GHOST_EventManager class.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_EVENTMANAGER_H__
|
||||
#define __GHOST_EVENTMANAGER_H__
|
||||
#pragma once
|
||||
|
||||
#include <deque>
|
||||
#include <vector>
|
||||
@@ -140,5 +139,3 @@ class GHOST_EventManager {
|
||||
MEM_CXX_CLASS_ALLOC_FUNCS("GHOST:GHOST_EventManager")
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif // __GHOST_EVENTMANAGER_H__
|
||||
|
@@ -18,8 +18,7 @@
|
||||
* \ingroup GHOST
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_EVENTNDOF_H__
|
||||
#define __GHOST_EVENTNDOF_H__
|
||||
#pragma once
|
||||
|
||||
#ifndef WITH_INPUT_NDOF
|
||||
# error NDOF code included in non-NDOF-enabled build
|
||||
@@ -50,5 +49,3 @@ class GHOST_EventNDOFButton : public GHOST_Event {
|
||||
m_data = &m_buttonData;
|
||||
}
|
||||
};
|
||||
|
||||
#endif // __GHOST_EVENTNDOF_H__
|
||||
|
@@ -22,8 +22,7 @@
|
||||
* Declaration of GHOST_EventPrinter class.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_EVENTPRINTER_H__
|
||||
#define __GHOST_EVENTPRINTER_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_IEventConsumer.h"
|
||||
|
||||
@@ -48,5 +47,3 @@ class GHOST_EventPrinter : public GHOST_IEventConsumer {
|
||||
*/
|
||||
void getKeyString(GHOST_TKey key, char str[32]) const;
|
||||
};
|
||||
|
||||
#endif // __GHOST_EVENTPRINTER_H__
|
||||
|
@@ -22,8 +22,7 @@
|
||||
* Declaration of GHOST_EventString class.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_EVENTSTRING_H__
|
||||
#define __GHOST_EVENTSTRING_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_Event.h"
|
||||
|
||||
@@ -54,5 +53,3 @@ class GHOST_EventString : public GHOST_Event {
|
||||
free(m_data);
|
||||
}
|
||||
};
|
||||
|
||||
#endif // __GHOST_EVENTSTRING_H__
|
||||
|
@@ -22,8 +22,7 @@
|
||||
* Declaration of GHOST_EventTrackpad class.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_EVENTTRACKPAD_H__
|
||||
#define __GHOST_EVENTTRACKPAD_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_Event.h"
|
||||
|
||||
@@ -61,5 +60,3 @@ class GHOST_EventTrackpad : public GHOST_Event {
|
||||
/** The mouse pan data */
|
||||
GHOST_TEventTrackpadData m_trackpadEventData;
|
||||
};
|
||||
|
||||
#endif // _GHOST_EVENT_PAN_H_
|
||||
|
@@ -22,8 +22,7 @@
|
||||
* Declaration of GHOST_EventWheel class.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_EVENTWHEEL_H__
|
||||
#define __GHOST_EVENTWHEEL_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_Event.h"
|
||||
|
||||
@@ -51,5 +50,3 @@ class GHOST_EventWheel : public GHOST_Event {
|
||||
/** The z-displacement of the mouse wheel. */
|
||||
GHOST_TEventWheelData m_wheelEventData;
|
||||
};
|
||||
|
||||
#endif // __GHOST_EVENTWHEEL_H__
|
||||
|
@@ -18,8 +18,7 @@
|
||||
* \ingroup GHOST
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_IXRGRAPHICSBINDING_H__
|
||||
#define __GHOST_IXRGRAPHICSBINDING_H__
|
||||
#pragma once
|
||||
|
||||
#include <memory>
|
||||
#include <string>
|
||||
@@ -71,5 +70,3 @@ class GHOST_IXrGraphicsBinding {
|
||||
|
||||
std::unique_ptr<GHOST_IXrGraphicsBinding> GHOST_XrGraphicsBindingCreateFromType(
|
||||
GHOST_TXrGraphicsBinding type, GHOST_Context *ghost_ctx);
|
||||
|
||||
#endif /* __GHOST_IXRGRAPHICSBINDING_H__ */
|
||||
|
@@ -22,8 +22,7 @@
|
||||
* Icon image data for X11.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_ICONX11_H__
|
||||
#define __GHOST_ICONX11_H__
|
||||
#pragma once
|
||||
|
||||
/*
|
||||
* import bpy
|
||||
@@ -1013,5 +1012,3 @@ static const unsigned long BLENDER_ICONS_WM_X11[] = {
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
|
||||
};
|
||||
|
||||
#endif // __GHOST_ICONX11_H__
|
||||
|
@@ -23,8 +23,7 @@
|
||||
* \ingroup GHOST
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_IME_H__
|
||||
#define __GHOST_IME_H__
|
||||
#pragma once
|
||||
|
||||
#ifdef WITH_INPUT_IME
|
||||
|
||||
@@ -388,4 +387,3 @@ class GHOST_ImeWin32 {
|
||||
};
|
||||
|
||||
#endif // WITH_INPUT_IME
|
||||
#endif // __GHOST_IME_H__
|
||||
|
@@ -22,8 +22,7 @@
|
||||
* Declaration of GHOST_ModifierKeys struct.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_MODIFIERKEYS_H__
|
||||
#define __GHOST_MODIFIERKEYS_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_Types.h"
|
||||
|
||||
@@ -87,5 +86,3 @@ struct GHOST_ModifierKeys {
|
||||
/** Bitfield that stores the appropriate key state. */
|
||||
GHOST_TUns8 m_OS : 1;
|
||||
};
|
||||
|
||||
#endif // __GHOST_MODIFIERKEYS_H__
|
||||
|
@@ -14,8 +14,7 @@
|
||||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_NDOFMANAGER_H__
|
||||
#define __GHOST_NDOFMANAGER_H__
|
||||
#pragma once
|
||||
|
||||
#ifndef WITH_INPUT_NDOF
|
||||
# error NDOF code included in non-NDOF-enabled build
|
||||
@@ -167,5 +166,3 @@ class GHOST_NDOFManager {
|
||||
bool m_motionEventPending;
|
||||
float m_deadZone; // discard motion with each component < this
|
||||
};
|
||||
|
||||
#endif
|
||||
|
@@ -14,8 +14,7 @@
|
||||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_NDOFMANAGERCOCOA_H__
|
||||
#define __GHOST_NDOFMANAGERCOCOA_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_NDOFManager.h"
|
||||
|
||||
@@ -29,5 +28,3 @@ class GHOST_NDOFManagerCocoa : public GHOST_NDOFManager {
|
||||
|
||||
bool available();
|
||||
};
|
||||
|
||||
#endif // #include guard
|
||||
|
@@ -14,8 +14,7 @@
|
||||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_NDOFMANAGERUNIX_H__
|
||||
#define __GHOST_NDOFMANAGERUNIX_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_NDOFManager.h"
|
||||
|
||||
@@ -32,5 +31,3 @@ class GHOST_NDOFManagerUnix : public GHOST_NDOFManager {
|
||||
private:
|
||||
bool m_available;
|
||||
};
|
||||
|
||||
#endif /* __GHOST_NDOFMANAGERUNIX_H__ */
|
||||
|
@@ -14,8 +14,7 @@
|
||||
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_NDOFMANAGERWIN32_H__
|
||||
#define __GHOST_NDOFMANAGERWIN32_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_NDOFManager.h"
|
||||
|
||||
@@ -24,5 +23,3 @@ class GHOST_NDOFManagerWin32 : public GHOST_NDOFManager {
|
||||
GHOST_NDOFManagerWin32(GHOST_System &);
|
||||
bool available();
|
||||
};
|
||||
|
||||
#endif // #include guard
|
||||
|
@@ -22,8 +22,7 @@
|
||||
* Declaration of GHOST_System class.
|
||||
*/
|
||||
|
||||
#ifndef __GHOST_SYSTEM_H__
|
||||
#define __GHOST_SYSTEM_H__
|
||||
#pragma once
|
||||
|
||||
#include "GHOST_ISystem.h"
|
||||
|
||||
@@ -424,5 +423,3 @@ inline GHOST_NDOFManager *GHOST_System::getNDOFManager() const
|
||||
return m_ndofManager;
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // __GHOST_SYSTEM_H__
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user