diff options
author | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2016-12-28 16:52:56 +0100 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff-webhosting.net> | 2016-12-28 16:52:56 +0100 |
commit | 7b358424ebad9349421acd533c2fa1cbf6cf3e3e (patch) | |
tree | 686678532eefed525c242fd214d0cfb2914726c5 /CMakeLists.txt |
Initial import of xtrkcad version 1:4.0.2-2
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r-- | CMakeLists.txt | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..521f641 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,108 @@ +PROJECT(XTrkCAD) + +# where to look first for cmake modules, before ${CMAKE_ROOT}/Modules/ is checked +SET(CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR}/app) + +# Setup high-level build options ... +IF(UNIX AND NOT APPLE) + SET(XTRKCAD_USE_GTK_DEFAULT ON) + SET(XTRKCAD_USE_GTK_CAIRO_DEFAULT ON) + SET(XTRKCAD_USE_GETTEXT_DEFAULT ON) +ENDIF(UNIX AND NOT APPLE) + +IF(APPLE) + SET(XTRKCAD_USE_GTK_DEFAULT ON) + SET(XTRKCAD_USE_GTK_CAIRO_DEFAULT ON) + SET(XTRKCAD_USE_GETTEXT_DEFAULT OFF) +ENDIF(APPLE) + +IF(WIN32) + CMAKE_MINIMUM_REQUIRED(VERSION 2.4.7 FATAL_ERROR) + + SET(XTRKCAD_USE_GTK_DEFAULT OFF) + SET(XTRKCAD_USE_GTK_CAIRO_DEFAULT OFF) + SET(XTRKCAD_USE_GETTEXT_DEFAULT OFF) + + SET(CMAKE_C_FLAGS_DEBUG "/D_DEBUG /MTd /Zi /Ob0 /Od /RTC1" CACHE STRING "Flags used by the compiler during debug builds" FORCE) + SET(CMAKE_C_FLAGS_MINSIZEREL "/MT /O1 /Ob1 /D NDEBUG" CACHE STRING "Flags used by the compiler during release minumum size builds" FORCE) + SET(CMAKE_C_FLAGS_RELEASE "/MT /O2 /Ob2 /D NDEBUG" CACHE STRING "Flags used by the compiler during release builds" FORCE) + SET(CMAKE_C_FLAGS_RELWITHDEBINFO "/MT /Zi /O2 /Ob1 /D NDEBUG" CACHE STRING "Flags used by the compiler during release with debug info builds" FORCE) + + ADD_DEFINITIONS(-DWINDOWS) + ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS) +ENDIF(WIN32) + +if(COMMAND cmake_policy) + cmake_policy(SET CMP0003 NEW) + if( POLICY CMP0026 ) + cmake_policy(SET CMP0026 OLD) + endif( POLICY CMP0026 ) +endif(COMMAND cmake_policy) + +SET(XTRKCAD_USE_DOXYGEN_DEFAULT OFF) +SET(XTRKCAD_USE_LAYOUTCONTROL_DEFAULT OFF) +OPTION(XTRKCAD_USE_GTK "Use GTK for the graphical user interface back-end" ${XTRKCAD_USE_GTK_DEFAULT}) +OPTION(XTRKCAD_USE_GTK_CAIRO "Use Cairo for high-quality antialiased rendering" ${XTRKCAD_USE_GTK_CAIRO_DEFAULT}) +OPTION(XTRKCAD_USE_GETTEXT "Use gettext for internationalization" ${XTRKCAD_USE_GETTEXT_DEFAULT}) +OPTION(XTRKCAD_USE_LAYOUTCONTROL "Include layout control commands" ${XTRKCAD_USE_LAYOUTCONTROL_DEFAULT}) +OPTION(XTRKCAD_USE_DOXYGEN "Generate internals documentation using doxygen" ${XTRKCAD_USE_DOXYGEN_DEFAULT}) + +IF(APPLE) + OPTION(XTRKCAD_USE_PACKAGEMAKER "Generate an OSX PackageMaker package for distribution." OFF) +ENDIF(APPLE) + +# Hide the advanced stuff ... +MARK_AS_ADVANCED(CMAKE_BACKWARDS_COMPATIBILITY) +MARK_AS_ADVANCED(CMAKE_EXECUTABLE_FORMAT) +MARK_AS_ADVANCED(CMAKE_OSX_ARCHITECTURES) +MARK_AS_ADVANCED(CMAKE_OSX_SYSROOT) +MARK_AS_ADVANCED(CMAKE_USE_CHRPATH) +MARK_AS_ADVANCED(EXECUTABLE_OUTPUT_PATH) +MARK_AS_ADVANCED(LIBRARY_OUTPUT_PATH) + +# Test for dependencies ... +IF(WIN32 AND NOT XTRKCAD_USE_GTK) + FIND_PACKAGE(HTMLHelp REQUIRED) +ENDIF(WIN32 AND NOT XTRKCAD_USE_GTK) + +IF(XTRKCAD_USE_GTK) + INCLUDE(FindPkgConfig) + PKG_CHECK_MODULES(GTK REQUIRED "gtk+-2.0") + PKG_CHECK_MODULES(GTK_WEBKIT REQUIRED "webkit-1.0") +ENDIF(XTRKCAD_USE_GTK) + +IF(XTRKCAD_USE_PACKAGEMAKER) + IF(NOT CMAKE_INSTALL_PREFIX STREQUAL "/usr") + MESSAGE(SEND_ERROR "XTRKCAD_USE_PACKAGEMAKER requires CMAKE_INSTALL_PREFIX set to /usr.") + ENDIF(NOT CMAKE_INSTALL_PREFIX STREQUAL "/usr") +ENDIF(XTRKCAD_USE_PACKAGEMAKER) + +# Test for headers and libraries for portability ... + +INCLUDE (CheckIncludeFiles) +CHECK_INCLUDE_FILES (malloc.h HAVE_MALLOC_H) + +# Setup some global options for installation ... +SET(XTRKCAD_MAJOR_VERSION "4") +SET(XTRKCAD_MINOR_VERSION "2") +SET(XTRKCAD_RELEASE_VERSION "2") +SET(XTRKCAD_VERSION_MODIFIER "") +SET(XTRKCAD_VERSION "${XTRKCAD_MAJOR_VERSION}.${XTRKCAD_MINOR_VERSION}.${XTRKCAD_RELEASE_VERSION}${XTRKCAD_VERSION_MODIFIER}") + +IF(WIN32) + SET( CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX} ${XTRKCAD_VERSION}" ) +ENDIF(WIN32) +SET(XTRKCAD_BIN_INSTALL_DIR "bin") +SET(XTRKCAD_LOCALE_INSTALL_DIR "share/locale") +SET(XTRKCAD_PACKAGE "xtrkcad") +SET(XTRKCAD_SHARE_INSTALL_DIR "share/xtrkcad") + +# Enable use of a configuration file ... +ADD_DEFINITIONS(-DXTRKCAD_CMAKE_BUILD) +CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/xtrkcad-config.h.in ${CMAKE_CURRENT_BINARY_DIR}/xtrkcad-config.h) + +# Setup the rest of the build ... +ADD_SUBDIRECTORY(app) +ADD_SUBDIRECTORY(distribution) +ADD_SUBDIRECTORY(docs) + |