From 22e367dcfc40b587b86fea4b8195fccaaf259b0e Mon Sep 17 00:00:00 2001 From: selman Date: Thu, 15 Mar 2007 14:40:07 +0000 Subject: [PATCH] initial import --- CMakeDCompiler.cmake.in | 31 +++ CMakeDInformation.cmake | 138 +++++++++++ CMakeDetermineDCompiler.cmake | 88 +++++++ CMakeLists.txt | 15 ++ CMakeTestDCompiler.cmake | 39 +++ FindGDCPath.cmake | 29 +++ FindGTK2.cmake | 452 ++++++++++++++++++++++++++++++++++ Linux-dmd.cmake | 8 + Linux-gdc.cmake | 9 + Windows-dmd.cmake | 8 + Windows-gdc.cmake | 9 + 11 files changed, 826 insertions(+) create mode 100644 CMakeDCompiler.cmake.in create mode 100644 CMakeDInformation.cmake create mode 100644 CMakeDetermineDCompiler.cmake create mode 100644 CMakeLists.txt create mode 100644 CMakeTestDCompiler.cmake create mode 100644 FindGDCPath.cmake create mode 100644 FindGTK2.cmake create mode 100644 Linux-dmd.cmake create mode 100644 Linux-gdc.cmake create mode 100644 Windows-dmd.cmake create mode 100644 Windows-gdc.cmake diff --git a/CMakeDCompiler.cmake.in b/CMakeDCompiler.cmake.in new file mode 100644 index 0000000..129a520 --- /dev/null +++ b/CMakeDCompiler.cmake.in @@ -0,0 +1,31 @@ +SET(CMAKE_D_COMPILER "@CMAKE_D_COMPILER@") +SET(CMAKE_D_COMPILER_ARG1 "@CMAKE_D_COMPILER_ARG1@") +SET(CMAKE_AR "@CMAKE_AR@") +SET(CMAKE_RANLIB "@CMAKE_RANLIB@") +SET(CMAKE_COMPILER_IS_GDC @CMAKE_COMPILER_IS_GDC@) +SET(CMAKE_COMPILER_IS_DMD @CMAKE_COMPILER_IS_DMD@) +SET(CMAKE_D_COMPILER_LOADED 1) +SET(CMAKE_COMPILER_IS_MINGW @CMAKE_COMPILER_IS_MINGW@) +SET(CMAKE_COMPILER_IS_CYGWIN @CMAKE_COMPILER_IS_CYGWIN@) +IF(CMAKE_COMPILER_IS_CYGWIN) + SET(CYGWIN 1) + SET(UNIX 1) +ENDIF(CMAKE_COMPILER_IS_CYGWIN) + +SET(CMAKE_D_COMPILER_ENV_VAR "DC") + +IF(CMAKE_COMPILER_IS_MINGW) + SET(MINGW 1) +ENDIF(CMAKE_COMPILER_IS_MINGW) +SET(CMAKE_COMPILER_IS_GDC_RUN 1) +SET(CMAKE_D_SOURCE_FILE_EXTENSIONS d) +SET(CMAKE_D_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +SET(CMAKE_D_LINKER_PREFERENCE None) +IF(UNIX) + SET(CMAKE_D_OUTPUT_EXTENSION .o) +ELSE(UNIX) + SET(CMAKE_D_OUTPUT_EXTENSION .obj) +ENDIF(UNIX) +# save the size of void* in case where cache is removed +# and the this file is still around +#SET(CMAKE_SIZEOF_VOID_P @CMAKE_SIZEOF_VOID_P@) diff --git a/CMakeDInformation.cmake b/CMakeDInformation.cmake new file mode 100644 index 0000000..68de1b0 --- /dev/null +++ b/CMakeDInformation.cmake @@ -0,0 +1,138 @@ +# This file sets the basic flags for the D language in CMake. +# It also loads the available platform file for the system-compiler +# if it exists. + +GET_FILENAME_COMPONENT(CMAKE_BASE_NAME ${CMAKE_D_COMPILER} NAME_WE) +IF(CMAKE_COMPILER_IS_GDC) + SET(CMAKE_BASE_NAME gdc) +ELSE(CMAKE_COMPILER_IS_GDC) + SET(CMAKE_BASE_NAME dmd) +ENDIF(CMAKE_COMPILER_IS_GDC) +SET(CMAKE_SYSTEM_AND_D_COMPILER_INFO_FILE + ${CMAKE_ROOT}/Modules/Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME}.cmake) +INCLUDE(Platform/${CMAKE_SYSTEM_NAME}-${CMAKE_BASE_NAME} OPTIONAL) + +# This should be included before the _INIT variables are +# used to initialize the cache. Since the rule variables +# have if blocks on them, users can still define them here. +# But, it should still be after the platform file so changes can +# be made to those values. + +IF(CMAKE_USER_MAKE_RULES_OVERRIDE) + INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE}) +ENDIF(CMAKE_USER_MAKE_RULES_OVERRIDE) + +IF(CMAKE_USER_MAKE_RULES_OVERRIDE_D) + INCLUDE(${CMAKE_USER_MAKE_RULES_OVERRIDE_D}) +ENDIF(CMAKE_USER_MAKE_RULES_OVERRIDE_D) + + +# for most systems a module is the same as a shared library +# so unless the variable CMAKE_MODULE_EXISTS is set just +# copy the values from the LIBRARY variables +IF(NOT CMAKE_MODULE_EXISTS) + SET(CMAKE_SHARED_MODULE_D_FLAGS ${CMAKE_SHARED_LIBRARY_D_FLAGS}) + SET(CMAKE_SHARED_MODULE_CREATE_D_FLAGS ${CMAKE_SHARED_LIBRARY_CREATE_D_FLAGS}) +ENDIF(NOT CMAKE_MODULE_EXISTS) + +SET (CMAKE_D_FLAGS "$ENV{CFLAGS} ${CMAKE_D_FLAGS_INIT}" CACHE STRING + "Flags for D compiler.") + +IF(NOT CMAKE_NOT_USING_CONFIG_FLAGS) +# default build type is none + IF(NOT CMAKE_NO_BUILD_TYPE) + SET (CMAKE_BUILD_TYPE ${CMAKE_BUILD_TYPE_INIT} CACHE STRING + "Choose the type of build, options are: None(CMAKE_D_FLAGS used) Debug Release RelWithDebInfo MinSizeRel.") + ENDIF(NOT CMAKE_NO_BUILD_TYPE) + SET (CMAKE_D_FLAGS_DEBUG "${CMAKE_D_FLAGS_DEBUG_INIT}" CACHE STRING + "Flags used by the compiler during debug builds.") + SET (CMAKE_D_FLAGS_MINSIZEREL "${CMAKE_D_FLAGS_MINSIZEREL_INIT}" CACHE STRING + "Flags used by the compiler during release minsize builds.") + SET (CMAKE_D_FLAGS_RELEASE "${CMAKE_D_FLAGS_RELEASE_INIT}" CACHE STRING + "Flags used by the compiler during release builds (/MD /Ob1 /Oi /Ot /Oy /Gs will produce slightly less optimized but smaller files).") + SET (CMAKE_D_FLAGS_RELWITHDEBINFO "${CMAKE_D_FLAGS_RELWITHDEBINFO_INIT}" CACHE STRING + "Flags used by the compiler during Release with Debug Info builds.") +ENDIF(NOT CMAKE_NOT_USING_CONFIG_FLAGS) + +IF(CMAKE_D_STANDARD_LIBRARIES_INIT) + SET(CMAKE_D_STANDARD_LIBRARIES "${CMAKE_D_STANDARD_LIBRARIES_INIT}" + CACHE STRING "Libraries linked by defalut with all D applications.") + MARK_AS_ADVANCED(CMAKE_D_STANDARD_LIBRARIES) +ENDIF(CMAKE_D_STANDARD_LIBRARIES_INIT) + +INCLUDE(CMakeCommonLanguageInclude) + +# now define the following rule variables + +# CMAKE_D_CREATE_SHARED_LIBRARY +# CMAKE_D_CREATE_SHARED_MODULE +# CMAKE_D_CREATE_STATIC_LIBRARY +# CMAKE_D_COMPILE_OBJECT +# CMAKE_D_LINK_EXECUTABLE + +# variables supplied by the generator at use time +# +# the target without the suffix +# +# +# +# +# + +# D compiler information +# +# +# +# + +# Static library tools +# +# +IF(CMAKE_COMPILER_IS_GDC) + SET(CMAKE_OUTPUT_D_FLAG "-o ") +# SET(CMAKE_SHARED_LIBRARY_D_FLAGS "-g -O2 -fPIC") +# SET(CMAKE_SHARED_LIBRARY_CREATE_D_FLAGS "-shared") +ELSE(CMAKE_COMPILER_IS_GDC) + SET(CMAKE_OUTPUT_D_FLAG "-of") +# SET(CMAKE_SHARED_LIBRARY_D_FLAGS "-g -O -L-fPIC") +# SET(CMAKE_SHARED_LIBRARY_CREATE_D_FLAGS "-L-shared") +ENDIF(CMAKE_COMPILER_IS_GDC) + + +# create a D shared library +IF(NOT CMAKE_D_CREATE_SHARED_LIBRARY) + SET(CMAKE_D_CREATE_SHARED_LIBRARY + " ${CMAKE_OUTPUT_D_FLAG} ") +ENDIF(NOT CMAKE_D_CREATE_SHARED_LIBRARY) + +# create a D shared module just copy the shared library rule +IF(NOT CMAKE_D_CREATE_SHARED_MODULE) + SET(CMAKE_D_CREATE_SHARED_MODULE ${CMAKE_D_CREATE_SHARED_LIBRARY}) +ENDIF(NOT CMAKE_D_CREATE_SHARED_MODULE) + +# create a D static library +IF(NOT CMAKE_D_CREATE_STATIC_LIBRARY) + SET(CMAKE_D_CREATE_STATIC_LIBRARY + " cr " + " ") +ENDIF(NOT CMAKE_D_CREATE_STATIC_LIBRARY) + +# compile a D file into an object file +IF(NOT CMAKE_D_COMPILE_OBJECT) + SET(CMAKE_D_COMPILE_OBJECT + " ${CMAKE_OUTPUT_D_FLAG} -c ") +ENDIF(NOT CMAKE_D_COMPILE_OBJECT) + +IF(NOT CMAKE_D_LINK_EXECUTABLE) + SET(CMAKE_D_LINK_EXECUTABLE + " ${CMAKE_OUTPUT_D_FLAG} ") +ENDIF(NOT CMAKE_D_LINK_EXECUTABLE) + +MARK_AS_ADVANCED( +CMAKE_D_FLAGS +CMAKE_D_FLAGS_DEBUG +CMAKE_D_FLAGS_MINSIZEREL +CMAKE_D_FLAGS_RELEASE +CMAKE_D_FLAGS_RELWITHDEBINFO +) +SET(CMAKE_D_INFORMATION_LOADED 1) diff --git a/CMakeDetermineDCompiler.cmake b/CMakeDetermineDCompiler.cmake new file mode 100644 index 0000000..fc823e8 --- /dev/null +++ b/CMakeDetermineDCompiler.cmake @@ -0,0 +1,88 @@ +# determine the compiler to use for D programs +# NOTE, a generator may set CMAKE_D_COMPILER before +# loading this file to force a compiler. +# use environment variable DCC first if defined by user, next use +# the cmake variable CMAKE_GENERATOR_D which can be defined by a generator +# as a default compiler + +IF(NOT CMAKE_D_COMPILER) + + # prefer the environment variable DC + IF($ENV{DC} MATCHES ".+") + GET_FILENAME_COMPONENT(CMAKE_D_COMPILER_INIT $ENV{DC} PROGRAM PROGRAM_ARGS CMAKE_D_FLAGS_ENV_INIT) + IF(CMAKE_D_FLAGS_ENV_INIT) + SET(CMAKE_D_COMPILER_ARG1 "${CMAKE_D_FLAGS_ENV_INIT}" CACHE STRING "First argument to D compiler") + ENDIF(CMAKE_D_FLAGS_ENV_INIT) + IF(EXISTS ${CMAKE_D_COMPILER_INIT}) + ELSE(EXISTS ${CMAKE_D_COMPILER_INIT}) + MESSAGE(FATAL_ERROR "Could not find compiler set in environment variable C:\n$ENV{DC}.") + ENDIF(EXISTS ${CMAKE_D_COMPILER_INIT}) + ENDIF($ENV{DC} MATCHES ".+") + + # next try prefer the compiler specified by the generator + IF(CMAKE_GENERATOR_D) + IF(NOT CMAKE_D_COMPILER_INIT) + SET(CMAKE_D_COMPILER_INIT ${CMAKE_GENERATOR_D}) + ENDIF(NOT CMAKE_D_COMPILER_INIT) + ENDIF(CMAKE_GENERATOR_D) + + # finally list compilers to try + IF(CMAKE_D_COMPILER_INIT) + SET(CMAKE_D_COMPILER_LIST ${CMAKE_D_COMPILER_INIT}) + ELSE(CMAKE_D_COMPILER_INIT) + SET(CMAKE_D_COMPILER_LIST gdc dmd) + ENDIF(CMAKE_D_COMPILER_INIT) + + # Find the compiler. + FIND_PROGRAM(CMAKE_D_COMPILER NAMES ${CMAKE_D_COMPILER_LIST} DOC "C compiler") + IF(CMAKE_D_COMPILER_INIT AND NOT CMAKE_D_COMPILER) + SET(CMAKE_D_COMPILER "${CMAKE_D_COMPILER_INIT}" CACHE FILEPATH "C compiler" FORCE) + ENDIF(CMAKE_D_COMPILER_INIT AND NOT CMAKE_D_COMPILER) +ENDIF(NOT CMAKE_D_COMPILER) +MARK_AS_ADVANCED(CMAKE_D_COMPILER) +GET_FILENAME_COMPONENT(COMPILER_LOCATION "${CMAKE_D_COMPILER}" PATH) + +FIND_PROGRAM(CMAKE_AR NAMES ar PATHS ${COMPILER_LOCATION} ) + +FIND_PROGRAM(CMAKE_RANLIB NAMES ranlib) +IF(NOT CMAKE_RANLIB) + SET(CMAKE_RANLIB : CACHE INTERNAL "noop for ranlib") +ENDIF(NOT CMAKE_RANLIB) +MARK_AS_ADVANCED(CMAKE_RANLIB) + +# do not test for GNU if the generator is visual studio +IF(${CMAKE_GENERATOR} MATCHES "Visual Studio") + SET(CMAKE_COMPILER_IS_GDC_RUN 1) +ENDIF(${CMAKE_GENERATOR} MATCHES "Visual Studio") + + +IF(NOT CMAKE_COMPILER_IS_GDC_RUN) + # test to see if the d compiler is gdc + SET(CMAKE_COMPILER_IS_GDC_RUN 1) + IF("${CMAKE_D_COMPILER}" MATCHES ".*gdc.*" ) + SET(CMAKE_COMPILER_IS_GDC 1) + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if the D compiler is GDC succeeded with " + "the following output:\n${CMAKE_D_COMPILER}\n\n") + EXEC_PROGRAM(${CMAKE_D_COMPILER} ARGS "--version" OUTPUT_VARIABLE CMAKE_COMPILER_OUTPUT) + IF("${CMAKE_COMPILER_OUTPUT}" MATCHES ".*mingw.*" ) + SET(CMAKE_COMPILER_IS_MINGW 1) + ENDIF("${CMAKE_COMPILER_OUTPUT}" MATCHES ".*mingw.*" ) + IF("${CMAKE_COMPILER_OUTPUT}" MATCHES ".*THIS_IS_CYGWIN.*" ) + SET(CMAKE_COMPILER_IS_CYGWIN 1) + ENDIF("${CMAKE_COMPILER_OUTPUT}" MATCHES ".*THIS_IS_CYGWIN.*" ) + ELSE("${CMAKE_D_COMPILER}" MATCHES ".*dmd.*" ) + SET(CMAKE_COMPILER_IS_DMD 1) + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if the D compiler is DMD succeeded with " + "the following output:\n${CMAKE_D_COMPILER}\n\n") + ENDIF("${CMAKE_D_COMPILER}" MATCHES ".*gdc.*" ) +ENDIF(NOT CMAKE_COMPILER_IS_GDC_RUN) + + +# configure variables set in this file for fast reload later on +CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CMakeDCompiler.cmake.in + "${CMAKE_PLATFORM_ROOT_BIN}/CMakeDCompiler.cmake" IMMEDIATE) +MARK_AS_ADVANCED(CMAKE_AR) + +SET(CMAKE_D_COMPILER_ENV_VAR "DC") diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..c424d41 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,15 @@ +PROJECT (cmaked NONE) + +SET (MOD_SRCS + CMakeDCompiler.cmake.in FindGTK2.cmake + CMakeDInformation.cmake CMakeTestDCompiler.cmake + CMakeDetermineDCompiler.cmake FindGDCPath.cmake ) + + +SET (PLAT_SRCS + Linux-dmd.cmake Linux-gdc.cmake + Windows-dmd.cmake Windows-gdc.cmake ) + + +INSTALL (FILES ${MOD_SRCS} DESTINATION ${CMAKE_ROOT}/Modules) +INSTALL (FILES ${PLAT_SRCS} DESTINATION ${CMAKE_ROOT}/Modules/Platform) diff --git a/CMakeTestDCompiler.cmake b/CMakeTestDCompiler.cmake new file mode 100644 index 0000000..bcf9c24 --- /dev/null +++ b/CMakeTestDCompiler.cmake @@ -0,0 +1,39 @@ +# This file is used by EnableLanguage in cmGlobalGenerator to +# determine that that selected D compiler can actually compile +# and link the most basic of programs. If not, a fatal error +# is set and cmake stops processing commands and will not generate +# any makefiles or projects. +IF(NOT CMAKE_D_COMPILER_WORKS) + MESSAGE(STATUS "Check for working D compiler: ${CMAKE_D_COMPILER}") + FILE(WRITE ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testDCompiler.d + "import std.stdio;\n" + "int main(char[][] args)\n" + "{ writefln(\"%s\", args[0]); return args.sizeof-1;}\n") + TRY_COMPILE(CMAKE_D_COMPILER_WORKS ${CMAKE_BINARY_DIR} ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeTmp/testDCompiler.d + OUTPUT_VARIABLE OUTPUT) + SET(C_TEST_WAS_RUN 1) +ENDIF(NOT CMAKE_D_COMPILER_WORKS) + +IF(NOT CMAKE_D_COMPILER_WORKS) + MESSAGE(STATUS "Check for working D compiler: ${CMAKE_D_COMPILER} -- broken") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeError.log + "Determining if the D compiler works failed with " + "the following output:\n${OUTPUT}\n\n") + MESSAGE(FATAL_ERROR "The D compiler \"${CMAKE_D_COMPILER}\" " + "is not able to compile a simple test program.\nIt fails " + "with the following output:\n ${OUTPUT}\n\n" + "CMake will not be able to correctly generate this project.") +ELSE(NOT CMAKE_D_COMPILER_WORKS) + IF(C_TEST_WAS_RUN) + MESSAGE(STATUS "Check for working D compiler: ${CMAKE_D_COMPILER} -- works") + FILE(APPEND ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeOutput.log + "Determining if the D compiler works passed with " + "the following output:\n${OUTPUT}\n\n") + ENDIF(C_TEST_WAS_RUN) + SET(CMAKE_D_COMPILER_WORKS 1 CACHE INTERNAL "") + # re-configure this file CMakeDCompiler.cmake so that it gets + # the value for CMAKE_SIZEOF_VOID_P + # configure variables set in this file for fast reload later on + CONFIGURE_FILE(${CMAKE_ROOT}/Modules/CMakeDCompiler.cmake.in + ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMakeDCompiler.cmake IMMEDIATE) +ENDIF(NOT CMAKE_D_COMPILER_WORKS) diff --git a/FindGDCPath.cmake b/FindGDCPath.cmake new file mode 100644 index 0000000..97692a7 --- /dev/null +++ b/FindGDCPath.cmake @@ -0,0 +1,29 @@ +# - Find GDC Include Path +# +# GDC_INCLUDE_PATH = path to where object.d is found +# + +SET(GDC_POSSIBLE_INCLUDE_PATHS + /usr/include/d/4.1.2 + /usr/include/d/4.1.1 + /usr/include/d/4.1.0 + /usr/include/d/4.0.4 + /usr/include/d/4.0.3 + /usr/include/d/4.0.2 + /usr/include/d/4.0.1 + /usr/include/d/4.0.0 + /usr/include/d/4.0.6 + /usr/include/d/4.0.5 + /usr/include/d/3.4.4 + /usr/include/d/3.4.3 + /usr/include/d/3.4.2 + /usr/include/d/3.4.1 + /usr/include/d/3.4.0 + ) + +FIND_PATH(GDC_INCLUDE_PATH object.d + ${GDC_POSSIBLE_INCLUDE_PATHS}) + +MARK_AS_ADVANCED( + GDC_INCLUDE_PATH + ) diff --git a/FindGTK2.cmake b/FindGTK2.cmake new file mode 100644 index 0000000..39094b9 --- /dev/null +++ b/FindGTK2.cmake @@ -0,0 +1,452 @@ +# - Try to find GTK2 +# Once done this will define +# +# GTK2_FOUND - System has Boost +# GTK2_INCLUDE_DIRS - GTK2 include directory +# GTK2_LIBRARIES - Link these to use GTK2 +# GTK2_LIBRARY_DIRS - The path to where the GTK2 library files are. +# GTK2_DEFINITIONS - Compiler switches required for using GTK2 +# +# Copyright (c) 2007 Andreas Schneider +# +# Redistribution and use is allowed according to the terms of the New +# BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. +# + +set(GTK2_DEBUG ON) + +macro(GTK2_DEBUG_MESSAGE _message) + if (GTK2_DEBUG) + message(STATUS "(DEBUG) ${_message}") + endif (GTK2_DEBUG) +endmacro(GTK2_DEBUG_MESSAGE _message) + +if (GTK2_LIBRARIES AND GTK2_INCLUDE_DIRS) + # in cache already + set(GTK2_FOUND TRUE) +else (GTK2_LIBRARIES AND GTK2_INCLUDE_DIRS) + if (UNIX) + # use pkg-config to get the directories and then use these values + # in the FIND_PATH() and FIND_LIBRARY() calls + include(UsePkgConfig) + + pkgconfig(gtk+-2.0 _GTK2IncDir _GTK2LinkDir _GTK2LinkFlags _GTK2Cflags) + + find_path(GTK2_GTK_INCLUDE_DIR + NAMES + gtk/gtk.h + PATHS + $ENV{GTK2_HOME} + ${_GTK2IncDir} + /usr/include/gtk-2.0 + /usr/local/include/gtk-2.0 + /opt/include/gtk-2.0 + /opt/gnome/include/gtk-2.0 + /sw/include/gtk-2.0 + ) + gtk2_debug_message("GTK2_GTK_INCLUDE_DIR is ${GTK2_GTK_INCLUDE_DIR}") + + # Some Linux distributions (e.g. Red Hat) have glibconfig.h + # and glib.h in different directories, so we need to look + # for both. + # - Atanas Georgiev + pkgconfig(glib-2.0 _GLIB2IncDir _GLIB2LinkDir _GLIB2LinkFlags _GLIB2Cflags) + pkgconfig(gmodule-2.0 _GMODULE2IncDir _GMODULE2LinkDir _GMODULE2LinkFlags _GMODULE2Cflags) + + find_path(GTK2_GLIBCONFIG_INCLUDE_DIR + NAMES + glibconfig.h + PATHS + ${_GLIB2IncDir} + ${_GMODULE2IncDir} + /opt/gnome/lib64/glib-2.0/include + /opt/gnome/lib/glib-2.0/include + /opt/lib/glib-2.0/include + /usr/lib64/glib-2.0/include + /usr/lib/glib-2.0/include + /sw/lib/glib-2.0/include + ) + gtk2_debug_message("GTK2_GLIBCONFIG_INCLUDE_DIR is ${GTK2_GLIBCONFIG_INCLUDE_DIR}") + + find_path(GTK2_GLIB_INCLUDE_DIR + NAMES + glib.h + PATHS + ${_GLIB2IncDir} + ${_GMODULE2IncDir} + /opt/include/glib-2.0 + /opt/gnome/include/glib-2.0 + /usr/include/glib-2.0 + /sw/include/glib-2.0 + ) + gtk2_debug_message("GTK2_GLIB_INCLUDE_DIR is ${GTK2_GLIB_INCLUDE_DIR}") + + pkgconfig(gdk-2.0 _GDK2IncDir _GDK2LinkDir _GDK2LinkFlags _GDK2Cflags) + + find_path(GTK2_GDK_INCLUDE_DIR + NAMES + gdkconfig.h + PATHS + ${_GDK2IncDir} + /opt/gnome/lib/gtk-2.0/include + /opt/gnome/lib64/gtk-2.0/include + /opt/lib/gtk-2.0/include + /usr/lib/gtk-2.0/include + /usr/lib64/gtk-2.0/include + /sw/lib/gtk-2.0/include + ) + gtk2_debug_message("GTK2_GDK_INCLUDE_DIR is ${GTK2_GDK_INCLUDE_DIR}") + + find_path(GTK2_GTKGL_INCLUDE_DIR + NAMES + gtkgl/gtkglarea.h + PATHS + ${_GLIB2IncDir} + /usr/include + /usr/local/include + /usr/openwin/share/include + /opt/gnome/include + /opt/include + /sw/include + ) + gtk2_debug_message("GTK2_GTKGL_INCLUDE_DIR is ${GTK2_GTKGL_INCLUDE_DIR}") + + pkgconfig(libglade-2.0 _GLADEIncDir _GLADELinkDir _GLADELinkFlags _GLADECflags) + + find_path(GTK2_GLADE_INCLUDE_DIR + NAMES + glade/glade.h + PATHS + ${_GLADEIncDir} + /opt/gnome/include/libglade-2.0 + /usr/include/libglade-2.0 + /opt/include/libglade-2.0 + /sw/include/libglade-2.0 + ) + gtk2_debug_message("GTK2_GLADE_INCLUDE_DIR is ${GTK2_GLADE_INCLUDE_DIR}") + + pkgconfig(pango _PANGOIncDir _PANGOLinkDir _PANGOLinkFlags _PANGOCflags) + + find_path(GTK2_PANGO_INCLUDE_DIR + NAMES + pango/pango.h + PATHS + ${_PANGOIncDir} + /usr/include/pango-1.0 + /opt/gnome/include/pango-1.0 + /opt/include/pango-1.0 + /sw/include/pango-1.0 + ) + gtk2_debug_message("GTK2_PANGO_INCLUDE_DIR is ${GTK2_PANGO_INCLUDE_DIR}") + + pkgconfig(cairo _CAIROIncDir _CAIROLinkDir _CAIROLinkFlags _CAIROCflags) + + find_path(GTK2_CAIRO_INCLUDE_DIR + NAMES + cairo.h + PATHS + ${_CAIROIncDir} + /opt/gnome/include/cairo + /usr/include + /usr/include/cairo + /opt/include + /opt/include/cairo + /sw/include + /sw/include/cairo + ) + gtk2_debug_message("GTK2_CAIRO_INCLUDE_DIR is ${GTK2_CAIRO_INCLUDE_DIR}") + + pkgconfig(atk _ATKIncDir _ATKLinkDir _ATKLinkFlags _ATKCflags) + + find_path(GTK2_ATK_INCLUDE_DIR + NAMES + atk/atk.h + PATHS + ${_ATKIncDir} + /opt/gnome/include/atk-1.0 + /usr/include/atk-1.0 + /opt/include/atk-1.0 + /sw/include/atk-1.0 + ) + gtk2_debug_message("GTK2_ATK_INCLUDE_DIR is ${GTK2_ATK_INCLUDE_DIR}") + + find_library(GTK2_GTK_LIBRARY + NAMES + gtk-x11-2.0 + PATHS + ${_GTK2LinkDir} + /usr/lib + /usr/local/lib + /usr/openwin/lib + /usr/X11R6/lib + /opt/gnome/lib + /opt/lib + /sw/lib + ) + gtk2_debug_message("GTK2_GTK_LIBRARY is ${GTK2_GTK_LIBRARY}") + + find_library(GTK2_GDK_LIBRARY + NAMES + gdk-x11-2.0 + PATHS + ${_GDK2LinkDir} + /usr/lib + /usr/local/lib + /usr/openwin/lib + /usr/X11R6/lib + /opt/gnome/lib + /opt/lib + /sw/lib + ) + gtk2_debug_message("GTK2_GDK_LIBRARY is ${GTK2_GDK_LIBRARY}") + + find_library(GTK2_GDK_PIXBUF_LIBRARY + NAMES + gdk_pixbuf-2.0 + PATHS + ${_GDK2LinkDir} + /usr/lib + /usr/local/lib + /usr/openwin/lib + /usr/X11R6/lib + /opt/gnome/lib + /opt/lib + /sw/lib + ) + gtk2_debug_message("GTK2_GDK_PIXBUF_LIBRARY is ${GTK2_GDK_PIXBUF_LIBRARY}") + + find_library(GTK2_GMODULE_LIBRARY + NAMES + gmodule-2.0 + PATHS + ${_GMODULE2LinkDir} + /usr/lib + /usr/local/lib + /usr/openwin/lib + /usr/X11R6/lib + /opt/gnome/lib + /opt/lib + /sw/lib + ) + gtk2_debug_message("GTK2_GMODULE_LIBRARY is ${GTK2_GMODULE_LIBRARY}") + + find_library(GTK2_GTHREAD_LIBRARY + NAMES + gthread-2.0 + PATHS + ${_GTK2LinkDir} + /usr/lib + /usr/local/lib + /usr/openwin/lib + /usr/X11R6/lib + /opt/gnome/lib + /opt/lib + /sw/lib + ) + gtk2_debug_message("GTK2_GTHREAD_LIBRARY is ${GTK2_GTHREAD_LIBRARY}") + + find_library(GTK2_GOBJECT_LIBRARY + NAMES + gobject-2.0 + PATHS + ${_GTK2LinkDir} + /usr/lib + /usr/local/lib + /usr/openwin/lib + /usr/X11R6/lib + /opt/gnome/lib + /opt/lib + /sw/lib + ) + gtk2_debug_message("GTK2_GOBJECT_LIBRARY is ${GTK2_GOBJECT_LIBRARY}") + + find_library(GTK2_GLIB_LIBRARY + NAMES + glib-2.0 + PATHS + ${_GLIB2LinkDir} + /usr/lib + /usr/local/lib + /usr/openwin/lib + /usr/X11R6/lib + /opt/gnome/lib + /opt/lib + /sw/lib + ) + gtk2_debug_message("GTK2_GLIB_LIBRARY is ${GTK2_GLIB_LIBRARY}") + + find_library(GTK2_GTKGL_LIBRARY + NAMES + gtkgl + PATHS + ${_GTK2LinkDir} + /usr/lib + /usr/local/lib + /usr/openwin/lib + /usr/X11R6/lib + /opt/gnome/lib + /opt/lib + /sw/lib + ) + gtk2_debug_message("GTK2_GTKGL_LIBRARY is ${GTK2_GTKGL_LIBRARY}") + + find_library(GTK2_GLADE_LIBRARY + NAMES + glade-2.0 + PATHS + ${_GLADELinkDir} + /usr/lib + /usr/local/lib + /usr/openwin/lib + /usr/X11R6/lib + /opt/gnome/lib + /opt/lib + /sw/lib + ) + gtk2_debug_message("GTK2_GLADE_LIBRARY is ${GTK2_GLADE_LIBRARY}") + + find_library(GTK2_PANGO_LIBRARY + NAMES + pango-1.0 + PATHS + ${_PANGOLinkDir} + /usr/lib + /usr/local/lib + /usr/openwin/lib + /usr/X11R6/lib + /opt/gnome/lib + /opt/lib + /sw/lib + ) + gtk2_debug_message("GTK2_PANGO_LIBRARY is ${GTK2_PANGO_LIBRARY}") + + find_library(GTK2_CAIRO_LIBRARY + NAMES + pangocairo-1.0 + PATHS + ${_CAIROLinkDir} + /usr/lib + /usr/local/lib + /usr/openwin/lib + /usr/X11R6/lib + /opt/gnome/lib + /opt/lib + /sw/lib + ) + gtk2_debug_message("GTK2_PANGO_LIBRARY is ${GTK2_CAIRO_LIBRARY}") + + find_library(GTK2_ATK_LIBRARY + NAMES + atk-1.0 + PATHS + ${_ATKinkDir} + /usr/lib + /usr/local/lib + /usr/openwin/lib + /usr/X11R6/lib + /opt/gnome/lib + /opt/lib + /sw/lib + ) + gtk2_debug_message("GTK2_ATK_LIBRARY is ${GTK2_ATK_LIBRARY}") + + set(GTK2_INCLUDE_DIRS + ${GTK2_GTK_INCLUDE_DIR} + ${GTK2_GLIBCONFIG_INCLUDE_DIR} + ${GTK2_GLIB_INCLUDE_DIR} + ${GTK2_GDK_INCLUDE_DIR} + ${GTK2_GLADE_INCLUDE_DIR} + ${GTK2_PANGO_INCLUDE_DIR} + ${GTK2_CAIRO_INCLUDE_DIR} + ${GTK2_ATK_INCLUDE_DIR} + ) + + if (GTK2_GTK_LIBRARY AND GTK2_GTK_INCLUDE_DIR) + if (GTK2_GDK_LIBRARY AND GTK2_GDK_PIXBUF_LIBRARY AND GTK2_GDK_INCLUDE_DIR) + if (GTK2_GMODULE_LIBRARY) + if (GTK2_GTHREAD_LIBRARY) + if (GTK2_GOBJECT_LIBRARY) + if (GTK2_GLADE_LIBRARY AND GTK2_GLADE_INCLUDE_DIR) + if (GTK2_PANGO_LIBRARY AND GTK2_PANGO_INCLUDE_DIR) + if (GTK2_CAIRO_LIBRARY AND GTK2_CAIRO_INCLUDE_DIR) + if (GTK2_ATK_LIBRARY AND GTK2_ATK_INCLUDE_DIR) + + # set GTK2 libraries + set (GTK2_LIBRARIES + ${GTK2_GTK_LIBRARY} + ${GTK2_GDK_LIBRARY} + ${GTK2_GDK_PIXBUF_LIBRARY} + ${GTK2_GMODULE_LIBRARY} + ${GTK2_GTHREAD_LIBRARY} + ${GTK2_GOBJECT_LIBRARY} + ${GTK2_GLADE_LIBRARY} + ${GTK2_PANGO_LIBRARY} + ${GTK2_CAIRO_LIBRARY} + ${GTK2_ATK_LIBRARY} + ) + + # check for gtkgl support + if (GTK2_GTKGL_LIBRARY AND GTK2_GTKGL_INCLUDE_DIR) + set(GTK2_GTKGL_FOUND TRUE) + + set(GTK2_INCLUDE_DIRS + ${GTK2_INCLUDE_DIR} + ${GTK2_GTKGL_INCLUDE_DIR} + ) + + set(GTK2_LIBRARIES + ${GTK2_LIBRARIES} + ${GTK2_GTKGL_LIBRARY} + ) + endif (GTK2_GTKGL_LIBRARY AND GTK2_GTKGL_INCLUDE_DIR) + + else (GTK2_ATK_LIBRARY AND GTK2_ATK_INCLUDE_DIR) + message(SEND_ERROR "Could not find ATK") + endif (GTK2_ATK_LIBRARY AND GTK2_ATK_INCLUDE_DIR) + else (GTK2_CAIRO_LIBRARY AND GTK2_CAIRO_INCLUDE_DIR) + message(SEND_ERROR "Could not find CAIRO") + endif (GTK2_CAIRO_LIBRARY AND GTK2_CAIRO_INCLUDE_DIR) + else (GTK2_PANGO_LIBRARY AND GTK2_PANGO_INCLUDE_DIR) + message(SEND_ERROR "Could not find PANGO") + endif (GTK2_PANGO_LIBRARY AND GTK2_PANGO_INCLUDE_DIR) + else (GTK2_GLADE_LIBRARY AND GTK2_GLADE_INCLUDE_DIR) + message(SEND_ERROR "Could not find GLADE") + endif (GTK2_GLADE_LIBRARY AND GTK2_GLADE_INCLUDE_DIR) + else (GTK2_GOBJECT_LIBRARY) + message(SEND_ERROR "Could not find GOBJECT") + endif (GTK2_GOBJECT_LIBRARY) + else (GTK2_GTHREAD_LIBRARY) + message(SEND_ERROR "Could not find GTHREAD") + endif (GTK2_GTHREAD_LIBRARY) + else (GTK2_GMODULE_LIBRARY) + message(SEND_ERROR "Could not find GMODULE") + endif (GTK2_GMODULE_LIBRARY) + else (GTK2_GDK_LIBRARY AND GTK2_GDK_PIXBUF_LIBRARY AND GTK2_GDK_INCLUDE_DIR) + message(SEND_ERROR "Could not find GDK (GDK_PIXBUF)") + endif (GTK2_GDK_LIBRARY AND GTK2_GDK_PIXBUF_LIBRARY AND GTK2_GDK_INCLUDE_DIR) + else (GTK2_GTK_LIBRARY AND GTK2_GTK_INCLUDE_DIR) + message(SEND_ERROR "Could not find GTK2-X11") + endif (GTK2_GTK_LIBRARY AND GTK2_GTK_INCLUDE_DIR) + + + if (GTK2_INCLUDE_DIRS AND GTK2_LIBRARIES) + set(GTK2_FOUND TRUE) + endif (GTK2_INCLUDE_DIRS AND GTK2_LIBRARIES) + + if (GTK2_FOUND) + if (NOT GTK2_FIND_QUIETLY) + message(STATUS "Found GTK2: ${GTK2_LIBRARIES}") + endif (NOT GTK2_FIND_QUIETLY) + else (GTK2_FOUND) + if (GTK2_FIND_REQUIRED) + message(FATAL_ERROR "Could not find GTK2") + endif (GTK2_FIND_REQUIRED) + endif (GTK2_FOUND) + + # show the GTK2_INCLUDE_DIRS and GTK2_LIBRARIES variables only in the advanced view + mark_as_advanced(GTK2_INCLUDE_DIRS GTK2_LIBRARIES) + + endif (UNIX) +endif (GTK2_LIBRARIES AND GTK2_INCLUDE_DIRS) + diff --git a/Linux-dmd.cmake b/Linux-dmd.cmake new file mode 100644 index 0000000..3953ff1 --- /dev/null +++ b/Linux-dmd.cmake @@ -0,0 +1,8 @@ +SET (CMAKE_D_FLAGS_INIT "") +SET (CMAKE_D_FLAGS_DEBUG_INIT "-g") +# SET (CMAKE_D_FLAGS_MINSIZEREL_INIT "-Os") +SET (CMAKE_D_FLAGS_RELEASE_INIT "-O -release -inline") +SET (CMAKE_D_FLAGS_RELWITHDEBINFO_INIT "-O -g") +# SET (CMAKE_D_CREATE_PREPROCESSED_SOURCE " -E > ") +SET (CMAKE_D_CREATE_ASSEMBLY_SOURCE " -S -o ") +# SET (CMAKE_INCLUDE_SYSTEM_FLAG_D "-isystem ") diff --git a/Linux-gdc.cmake b/Linux-gdc.cmake new file mode 100644 index 0000000..449496a --- /dev/null +++ b/Linux-gdc.cmake @@ -0,0 +1,9 @@ +SET (CMAKE_D_FLAGS_INIT "") +SET (CMAKE_D_FLAGS_DEBUG_INIT "-g") +SET (CMAKE_D_FLAGS_MINSIZEREL_INIT "-Os") +SET (CMAKE_D_FLAGS_RELEASE_INIT "-O3 -fomit-frame-pointer -fweb -frelease -finline-functions") +SET (CMAKE_D_FLAGS_RELWITHDEBINFO_INIT "-O2 -g") +# SET (CMAKE_D_CREATE_PREPROCESSED_SOURCE " -E > ") +SET (CMAKE_D_CREATE_ASSEMBLY_SOURCE " -S -o ") +#SET (CMAKE_INCLUDE_SYSTEM_FLAG_D "-isystem ") + diff --git a/Windows-dmd.cmake b/Windows-dmd.cmake new file mode 100644 index 0000000..3953ff1 --- /dev/null +++ b/Windows-dmd.cmake @@ -0,0 +1,8 @@ +SET (CMAKE_D_FLAGS_INIT "") +SET (CMAKE_D_FLAGS_DEBUG_INIT "-g") +# SET (CMAKE_D_FLAGS_MINSIZEREL_INIT "-Os") +SET (CMAKE_D_FLAGS_RELEASE_INIT "-O -release -inline") +SET (CMAKE_D_FLAGS_RELWITHDEBINFO_INIT "-O -g") +# SET (CMAKE_D_CREATE_PREPROCESSED_SOURCE " -E > ") +SET (CMAKE_D_CREATE_ASSEMBLY_SOURCE " -S -o ") +# SET (CMAKE_INCLUDE_SYSTEM_FLAG_D "-isystem ") diff --git a/Windows-gdc.cmake b/Windows-gdc.cmake new file mode 100644 index 0000000..449496a --- /dev/null +++ b/Windows-gdc.cmake @@ -0,0 +1,9 @@ +SET (CMAKE_D_FLAGS_INIT "") +SET (CMAKE_D_FLAGS_DEBUG_INIT "-g") +SET (CMAKE_D_FLAGS_MINSIZEREL_INIT "-Os") +SET (CMAKE_D_FLAGS_RELEASE_INIT "-O3 -fomit-frame-pointer -fweb -frelease -finline-functions") +SET (CMAKE_D_FLAGS_RELWITHDEBINFO_INIT "-O2 -g") +# SET (CMAKE_D_CREATE_PREPROCESSED_SOURCE " -E > ") +SET (CMAKE_D_CREATE_ASSEMBLY_SOURCE " -S -o ") +#SET (CMAKE_INCLUDE_SYSTEM_FLAG_D "-isystem ") +