Commit 7efef02d authored by Daniele E. Domenichelli's avatar Daniele E. Domenichelli Committed by Brad King
Browse files

FindGTK2: Add tests for components and targets in gtk and gtkmm modules

parent 95fc47aa
......@@ -1070,6 +1070,11 @@ ${CMake_BINARY_DIR}/bin/cmake -DVERSION=master -P ${CMake_SOURCE_DIR}/Utilities/
endif()
endif()
find_package(GTK2 QUIET)
if(GTK2_FOUND)
add_subdirectory(FindGTK2)
endif()
add_test(ExternalProject ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/ExternalProject"
......
find_package(GTK2 COMPONENTS gtk glade gtkmm glademm QUIET)
# Test GTK2 components
if(GTK2_GTK_FOUND)
add_test(GTK2Components.gtk ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindGTK2/gtk"
"${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Components/gtk"
${build_generator_args}
--build-target gtk-all-libs
--build-exe-dir "${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Components/gtk"
--force-new-ctest-process
--test-command ${CMAKE_CTEST_COMMAND} -V
)
endif()
if(GTK2_GTKMM_FOUND)
add_test(GTK2Components.gtkmm ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindGTK2/gtkmm"
"${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Components/gtkmm"
${build_generator_args}
--build-target gtkmm-all-libs
--build-exe-dir "${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Components/gtkmm"
--force-new-ctest-process
--test-command ${CMAKE_CTEST_COMMAND} -V
)
endif()
# Test GTK2 targets
if(TARGET GTK2::glib)
add_test(GTK2Targets.glib ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindGTK2/glib"
"${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/glib"
${build_generator_args}
--build-project glib
--build-exe-dir "${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/glib"
--force-new-ctest-process
--test-command ${CMAKE_CTEST_COMMAND} -V
)
endif()
if(TARGET GTK2::gobject)
add_test(GTK2Targets.gobject ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindGTK2/gobject"
"${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/gobject"
${build_generator_args}
--build-project gobject
--build-exe-dir "${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/gobject"
--force-new-ctest-process
--test-command ${CMAKE_CTEST_COMMAND} -V
)
endif()
if(TARGET GTK2::gio)
add_test(GTK2Targets.gio ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindGTK2/gio"
"${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/gio"
${build_generator_args}
--build-project gio
--build-exe-dir "${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/gio"
--force-new-ctest-process
--test-command ${CMAKE_CTEST_COMMAND} -V
)
endif()
if(TARGET GTK2::gmodule)
add_test(GTK2Targets.gmodule ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindGTK2/gmodule"
"${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/gmodule"
${build_generator_args}
--build-project gmodule
--build-exe-dir "${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/gmodule"
--force-new-ctest-process
--test-command ${CMAKE_CTEST_COMMAND} -V
)
endif()
if(TARGET GTK2::gthread)
add_test(GTK2Targets.gthread ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindGTK2/gthread"
"${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/gthread"
${build_generator_args}
--build-project gthread
--build-exe-dir "${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/gthread"
--force-new-ctest-process
--test-command ${CMAKE_CTEST_COMMAND} -V
)
endif()
if(TARGET GTK2::atk)
add_test(GTK2Targets.atk ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindGTK2/atk"
"${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/atk"
${build_generator_args}
--build-project atk
--build-exe-dir "${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/atk"
--force-new-ctest-process
--test-command ${CMAKE_CTEST_COMMAND} -V
)
endif()
if(TARGET GTK2::gdk_pixbuf)
add_test(GTK2Targets.gdk_pixbuf ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindGTK2/gdk_pixbuf"
"${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/gdk_pixbuf"
${build_generator_args}
--build-project gdk_pixbuf
--build-exe-dir "${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/gdk_pixbuf"
--force-new-ctest-process
--test-command ${CMAKE_CTEST_COMMAND} -V
)
endif()
if(TARGET GTK2::cairo)
add_test(GTK2Targets.cairo ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindGTK2/cairo"
"${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/cairo"
${build_generator_args}
--build-project cairo
--build-exe-dir "${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/cairo"
--force-new-ctest-process
--test-command ${CMAKE_CTEST_COMMAND} -V
)
endif()
if(TARGET GTK2::pango)
add_test(GTK2Targets.pango ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindGTK2/pango"
"${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/pango"
${build_generator_args}
--build-project pango
--build-exe-dir "${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/pango"
--force-new-ctest-process
--test-command ${CMAKE_CTEST_COMMAND} -V
)
endif()
if(TARGET GTK2::pangocairo)
add_test(GTK2Targets.pangocairo ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindGTK2/pangocairo"
"${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/pangocairo"
${build_generator_args}
--build-project pangocairo
--build-exe-dir "${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/pangocairo"
--force-new-ctest-process
--test-command ${CMAKE_CTEST_COMMAND} -V
)
endif()
if(TARGET GTK2::pangoxft)
add_test(GTK2Targets.pangoxft ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindGTK2/pangoxft"
"${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/pangoxft"
${build_generator_args}
--build-project pangoxft
--build-exe-dir "${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/pangoxft"
--force-new-ctest-process
--test-command ${CMAKE_CTEST_COMMAND} -V
)
endif()
if(TARGET GTK2::pangoft2)
add_test(GTK2Targets.pangoft2 ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindGTK2/pangoft2"
"${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/pangoft2"
${build_generator_args}
--build-project pangoft2
--build-exe-dir "${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/pangoft2"
--force-new-ctest-process
--test-command ${CMAKE_CTEST_COMMAND} -V
)
endif()
if(TARGET GTK2::gdk)
add_test(GTK2Targets.gdk ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindGTK2/gdk"
"${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/gdk"
${build_generator_args}
--build-project gdk
--build-exe-dir "${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/gdk"
--force-new-ctest-process
--test-command ${CMAKE_CTEST_COMMAND} -V
)
endif()
if(TARGET GTK2::gtk)
add_test(GTK2Targets.gtk ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindGTK2/gtk"
"${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/gtk"
${build_generator_args}
--build-project gtk
--build-exe-dir "${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/gtk"
--force-new-ctest-process
--test-command ${CMAKE_CTEST_COMMAND} -V
)
endif()
if(TARGET GTK2::sigc++)
add_test(GTK2Targets.sigc++ ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindGTK2/sigc++"
"${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/sigc++"
${build_generator_args}
--build-project sigc++
--build-exe-dir "${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/sigc++"
--force-new-ctest-process
--test-command ${CMAKE_CTEST_COMMAND} -V
)
endif()
if(TARGET GTK2::glibmm)
add_test(GTK2Targets.glibmm ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindGTK2/glibmm"
"${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/glibmm"
${build_generator_args}
--build-project glibmm
--build-exe-dir "${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/glibmm"
--force-new-ctest-process
--test-command ${CMAKE_CTEST_COMMAND} -V
)
endif()
if(TARGET GTK2::giomm)
add_test(GTK2Targets.giomm ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindGTK2/giomm"
"${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/giomm"
${build_generator_args}
--build-project giomm
--build-exe-dir "${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/giomm"
--force-new-ctest-process
--test-command ${CMAKE_CTEST_COMMAND} -V
)
endif()
if(TARGET GTK2::atkmm)
add_test(GTK2Targets.atkmm ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindGTK2/atkmm"
"${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/atkmm"
${build_generator_args}
--build-project atkmm
--build-exe-dir "${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/atkmm"
--force-new-ctest-process
--test-command ${CMAKE_CTEST_COMMAND} -V
)
endif()
if(TARGET GTK2::cairomm)
add_test(GTK2Targets.cairomm ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindGTK2/cairomm"
"${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/cairomm"
${build_generator_args}
--build-project cairomm
--build-exe-dir "${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/cairomm"
--force-new-ctest-process
--test-command ${CMAKE_CTEST_COMMAND} -V
)
endif()
if(TARGET GTK2::pangomm)
add_test(GTK2Targets.pangomm ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindGTK2/pangomm"
"${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/pangomm"
${build_generator_args}
--build-project pangomm
--build-exe-dir "${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/pangomm"
--force-new-ctest-process
--test-command ${CMAKE_CTEST_COMMAND} -V
)
endif()
if(TARGET GTK2::gdkmm)
add_test(GTK2Targets.gdkmm ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindGTK2/gdkmm"
"${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/GTK2Targets/gdkmm"
${build_generator_args}
--build-project gdkmm
--build-exe-dir "${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/GTK2Targets/gdkmm"
--force-new-ctest-process
--test-command ${CMAKE_CTEST_COMMAND} -V
)
endif()
if(TARGET GTK2::gtkmm)
add_test(GTK2Targets.gtkmm ${CMAKE_CTEST_COMMAND}
--build-and-test
"${CMake_SOURCE_DIR}/Tests/FindGTK2/gtkmm"
"${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/gtkmm"
${build_generator_args}
--build-target gtkmm-target
--build-exe-dir "${CMake_BINARY_DIR}/Tests/FindGTK2/GTK2Targets/gtkmm"
--force-new-ctest-process
--test-command ${CMAKE_CTEST_COMMAND} -V
)
endif()
cmake_minimum_required(VERSION 2.8)
project(atk C)
find_package(GTK2 COMPONENTS gtk REQUIRED)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
add_executable(atk WIN32 main.c)
target_link_libraries(atk GTK2::atk)
#include <atk/atk.h>
int main(int argc, char *argv[])
{
const gchar *name = atk_get_toolkit_name();
return 0;
}
cmake_minimum_required(VERSION 2.8)
project(atkmm CXX)
find_package(GTK2 COMPONENTS gtk gtkmm REQUIRED)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
add_executable(atkmm WIN32 main.cpp)
target_link_libraries(atkmm GTK2::atkmm)
#include <atkmm.h>
#include <atkmm/init.h>
int main(int argc, char *argv[])
{
Atk::init();
return 0;
}
cmake_minimum_required(VERSION 2.8)
project(cairo C)
find_package(GTK2 COMPONENTS gtk REQUIRED)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
add_executable(cairo WIN32 main.c)
target_link_libraries(cairo GTK2::cairo)
/* Taken from http://cairographics.org/samples/ */
#include <cairo.h>
#include <math.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
char *filename;
if (argc != 2)
{
fprintf (stderr, "Usage: %s OUTPUT_FILENAME\n", argv[0]);
return 1;
}
filename = argv[1];
double xc = 128.0;
double yc = 128.0;
double radius = 100.0;
double angle1 = 45.0 * (M_PI/180.0); /* angles are specified */
double angle2 = 180.0 * (M_PI/180.0); /* in radians */
cairo_surface_t *im = cairo_image_surface_create(CAIRO_FORMAT_ARGB32, xc * 2, yc * 2);
cairo_t *cr = cairo_create(im);
cairo_set_line_width (cr, 10.0);
cairo_arc (cr, xc, yc, radius, angle1, angle2);
cairo_stroke (cr);
/* draw helping lines */
cairo_set_source_rgba (cr, 1, 0.2, 0.2, 0.6);
cairo_set_line_width (cr, 6.0);
cairo_arc (cr, xc, yc, 10.0, 0, 2*M_PI);
cairo_fill (cr);
cairo_arc (cr, xc, yc, radius, angle1, angle1);
cairo_line_to (cr, xc, yc);
cairo_arc (cr, xc, yc, radius, angle2, angle2);
cairo_line_to (cr, xc, yc);
cairo_stroke (cr);
cairo_status_t status = cairo_surface_write_to_png (im, filename);
cairo_surface_destroy (im);
if (status != CAIRO_STATUS_SUCCESS) {
fprintf(stderr, "Could not save png to '%s'\n", filename);
}
cairo_destroy(cr);
return 0;
}
cmake_minimum_required(VERSION 2.8)
project(cairomm CXX)
find_package(GTK2 COMPONENTS gtk gtkmm REQUIRED)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
add_executable(cairomm WIN32 main.cpp)
target_link_libraries(cairomm GTK2::cairomm)
// Taken from http://cgit.freedesktop.org/cairomm/plain/examples/surfaces/image-surface.cc
/* M_PI is defined in math.h in the case of Microsoft Visual C++, Solaris,
* et. al.
*/
#if defined(_MSC_VER)
#define _USE_MATH_DEFINES
#endif
#include <string>
#include <iostream>
#include <cairommconfig.h>
#include <cairomm/context.h>
#include <cairomm/surface.h>
#include <cmath>
int main()
{
Cairo::RefPtr<Cairo::ImageSurface> surface =
Cairo::ImageSurface::create(Cairo::FORMAT_ARGB32, 600, 400);
Cairo::RefPtr<Cairo::Context> cr = Cairo::Context::create(surface);
cr->save(); // save the state of the context
cr->set_source_rgb(0.86, 0.85, 0.47);
cr->paint(); // fill image with the color
cr->restore(); // color is back to black now
cr->save();
// draw a border around the image
cr->set_line_width(20.0); // make the line wider
cr->rectangle(0.0, 0.0, surface->get_width(), surface->get_height());
cr->stroke();
cr->set_source_rgba(0.0, 0.0, 0.0, 0.7);
// draw a circle in the center of the image
cr->arc(surface->get_width() / 2.0, surface->get_height() / 2.0,
surface->get_height() / 4.0, 0.0, 2.0 * M_PI);
cr->stroke();
// draw a diagonal line
cr->move_to(surface->get_width() / 4.0, surface->get_height() / 4.0);
cr->line_to(surface->get_width() * 3.0 / 4.0, surface->get_height() * 3.0 / 4.0);
cr->stroke();
cr->restore();
#ifdef CAIRO_HAS_PNG_FUNCTIONS
std::string filename = "image.png";
surface->write_to_png(filename);
std::cout << "Wrote png file \"" << filename << "\"" << std::endl;
#else
std::cout << "You must compile cairo with PNG support for this example to work."
<< std::endl;
#endif
}
cmake_minimum_required(VERSION 2.8)
project(gdk C)
find_package(GTK2 COMPONENTS gtk REQUIRED)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
add_executable(gdk WIN32 main.c)
target_link_libraries(gdk GTK2::gdk)
#include <gdk/gdk.h>
int main(int argc, char *argv[])
{
gdk_init(argc, argv);
return 0;
}
cmake_minimum_required(VERSION 2.8)
project(gdk_pixbuf C)
find_package(GTK2 COMPONENTS gtk REQUIRED)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
add_executable(gdk_pixbuf WIN32 main.c)
target_link_libraries(gdk_pixbuf GTK2::gdk_pixbuf)
#include <gdk-pixbuf/gdk-pixbuf.h>
int main(int argc, char *argv[])
{
const char *version = gdk_pixbuf_version;
const guint major = gdk_pixbuf_major_version;
const guint minor = gdk_pixbuf_minor_version;
const guint micro = gdk_pixbuf_micro_version;
return 0;
}
cmake_minimum_required(VERSION 2.8)
project(gdkmm CXX)
find_package(GTK2 COMPONENTS gtk gtkmm REQUIRED)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
add_executable(gdkmm WIN32 main.cpp)
target_link_libraries(gdkmm GTK2::gdkmm)
#include <gdkmm.h>
int main(int argc, char *argv[])
{
Gdk::Color red = Gdk::Color("red");
return 0;
}
cmake_minimum_required(VERSION 2.8)
project(gio C)
find_package(GTK2 COMPONENTS gtk REQUIRED)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
add_executable(gio WIN32 main.c)
target_link_libraries(gio GTK2::gio)
#include <gio/gio.h>
int main(int argc, char *argv[])
{
GFile *file = g_file_new_for_path("path");
g_object_unref(file);
return 0;
}
cmake_minimum_required(VERSION 2.8)
project(giomm CXX)
find_package(GTK2 COMPONENTS gtk gtkmm REQUIRED)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
add_executable(giomm WIN32 main.cpp)
target_link_libraries(giomm GTK2::giomm)
#include <giomm.h>
int main(int argc, char *argv[])
{
Glib::RefPtr<Gio::File> f = Gio::File::create_for_path("path");
return 0;
}
Markdown is supported