+if (BUILTIN_GTKGLEXT OR BUILTIN_GTKTHEME_MOJAVE)
+ include(${CMAKE_ROOT}/Modules/ExternalProject.cmake)
+endif ()
+
+if (BUILTIN_GTKGLEXT)
+ set(GTKGLEXT_PKGNAMES "gdk-2.0 gtk+-2.0 glib-2.0")
+
+ if (NOT APPLE)
+ set(GTKGLEXT_PKGNAMES "${GTKGLEXT_PKGNAMES} gl")
+ endif ()
+
+ execute_process(COMMAND pkg-config --libs ${GTKGLEXT_PKGNAMES}
+ OUTPUT_VARIABLE GTKGLEXT_LDFLAGS
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+
+ set(GTKGLEXT_LDFLAGS "$ENV{LDFLAGS} -lm ${GTKGLEXT_LDFLAGS}")
+
+ execute_process(COMMAND pkg-config --cflags ${GTKGLEXT_PKGNAMES}
+ OUTPUT_VARIABLE GTKGLEXT_CFLAGS
+ OUTPUT_STRIP_TRAILING_WHITESPACE
+ )
+
+ set(GTKGLEXT_CFLAGS "$ENV{CFLAGS} ${GTKGLEXT_CFLAGS}")
+
+ if (NOT CMAKE_BUILD_TYPE MATCHES Release)
+ set(GTKGLEXT_CFLAGS "${GTKGLEXT_CFLAGS} -g")
+ endif ()
+
+ set(CONFIGURE_OPTIONS --disable-gtk-doc --disable-gtk-doc-html --disable-gtk-doc-pdf)
+
+ if (APPLE)
+ set(GTKGLEXT_GIT_TAG macos)
+ else ()
+ set(GTKGLEXT_GIT_TAG fixes)
+ endif ()
+
+ if (APPLE)
+ set(GTKGLEXT_CFLAGS "${GTKGLEXT_CFLAGS} -DGL_SILENCE_DEPRECATION=1")
+ # FIXME: OpenGL deprecation warnings are not silenced
+ # in Objective C code.
+ endif ()
+
+ ExternalProject_Add(gtkglext
+ GIT_REPOSITORY https://gitlab.gnome.org/illwieckz/gtkglext.git
+ GIT_TAG ${GTKGLEXT_GIT_TAG}
+ BUILD_IN_SOURCE ON
+ CONFIGURE_COMMAND export CFLAGS=${GTKGLEXT_LDFLAGS}
+ CONFIGURE_COMMAND && export LDFLAGS=${GTKGLEXT_CFLAGS}
+ CONFIGURE_COMMAND && export NOCONFIGURE=1
+ CONFIGURE_COMMAND && ./autogen.sh
+ CONFIGURE_COMMAND && ./configure --prefix "${BUILTINS_INSTALL_DIR}" ${CONFIGURE_OPTIONS}
+ BUILD_COMMAND $(MAKE)
+ BUILD_COMMAND CFLAGS=${GTKGLEXT_CFLAGS}
+ BUILD_COMMAND LDFLAGS=${GTKGLEXT_LDFLAGS}
+ INSTALL_COMMAND $(MAKE) install
+ )
+
+ include_directories("${BUILTINS_INCLUDE_DIR}/gtkglext-1.0")
+ include_directories("${BUILTINS_LIB_DIR}/gtkglext-1.0/include")
+
+ add_dependencies(builtins gtkglext)
+ set_target_properties(gtkglext PROPERTIES EXCLUDE_FROM_ALL ON)
+endif ()
+
+if (BUNDLE_LIBRARIES)
+ # It was required to tell cmake to not patch rpath on macos builtins.
+ # It was also required to tell cmake to not patch rpath on freebsd binaries.
+ # Patching rpath is done in library_bundler instead so we can skip this
+ # step entirely when bundling.
+ set(CMAKE_SKIP_RPATH ON)
+endif()
+
+if (BUILTIN_GTKTHEME_MOJAVE)
+ ExternalProject_Add(gtktheme-mojave
+ GIT_REPOSITORY https://github.com/vinceliuice/Mojave-gtk-theme.git
+ GIT_TAG master
+ BUILD_IN_SOURCE ON
+ CONFIGURE_COMMAND echo
+ BUILD_COMMAND echo
+ INSTALL_COMMAND ./install.sh -o standard -a standard -s standard -i standard -d "${PROJECT_BINARY_DIR}/themes"
+ )
+ add_dependencies(builtins gtktheme-mojave)
+ set_target_properties(gtktheme-mojave PROPERTIES EXCLUDE_FROM_ALL ON)