From 495ac0773c4341589f1cd9108c9de3daf5b78c2c Mon Sep 17 00:00:00 2001 From: Sebastian Faubel Date: Sat, 2 Jul 2016 19:15:39 +0200 Subject: Merge with trunk. (bzr r15002.1.1) --- CMakeLists.txt | 290 +++++++++++++++++++++++++++---- CMakeScripts/ConfigPaths.cmake | 150 ++++++++++++++++ CMakeScripts/DefineDependsandFlags.cmake | 88 +++------- config.h.cmake | 8 + src/CMakeLists.txt | 64 +++---- 5 files changed, 465 insertions(+), 135 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 94dbf60df..74aa54214 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,6 +6,59 @@ message("------------------------------") message("Source Dir: ${CMAKE_CURRENT_SOURCE_DIR}") message("Binary Dir: ${CMAKE_CURRENT_BINARY_DIR}") +# ----------------------------------------------------------------------------- +# Set platform defaults (originally copied from darktable) +# ----------------------------------------------------------------------------- +include(CMakeScripts/ConfigPaths.cmake) + +if(WIN32) + message("-- Windows build detected, setting default features") + + list(INSERT CMAKE_SYSTEM_INCLUDE_PATH 0 ${DEVLIBS_PATH}) + list(INSERT CMAKE_SYSTEM_LIBRARY_PATH 0 ${DEVLIBS_PATH}) + + set(CMAKE_C_COMPILER "${MINGW_BIN}/gcc.exe") + set(CMAKE_C_LINK_EXECUTABLE "${MINGW_BIN}/gcc.exe") + set(CMAKE_CXX_COMPILER "${MINGW_BIN}/g++.exe") + set(CMAKE_CXX_LINK_EXECUTABLE "${MINGW_BIN}/g++.exe") + set(CMAKE_CXX_STANDARD 11) + + # Setup Windows resource files compiler. + set(CMAKE_RC_COMPILER "${MINGW_BIN}/windres.exe") + set(CMAKE_RC_COMPILER_INIT windres) + enable_language(RC) + set(CMAKE_RC_COMPILE_OBJECT " -O coff -i -o ") + + # These options are required for having i18n support on Windows. + option(ENABLE_NLS "Compile with Native Language Support (using gettext)" ON) + option(HAVE_BIND_TEXTDOMAIN_CODESET "Compile with 'bind_textdomain_codeset' function" ON) + + # Does not compile on Windows with these options. + option(BR_PTHREADS "Use binreloc thread support" OFF) + option(ENABLE_BINRELOC "Use AutoPackage" OFF) +endif(WIN32) + +if(APPLE) + message("-- Mac OS X build detected, setting default features") + + # prefer macports and/or user-installed libraries over system ones + #LIST(APPEND CMAKE_PREFIX_PATH /opt/local /usr/local) + set(CMAKE_FIND_FRAMEWORK "LAST") + + # test and display relevant env variables + if(DEFINED ENV{CMAKE_PREFIX_PATH}) + message("CMAKE_PREFIX_PATH: $ENV{CMAKE_PREFIX_PATH}") + endif() + + if(DEFINED ENV{GTKMM_BASEPATH}) + message("GTKMM_BASEPATH: $ENV{GTKMM_BASEPATH}") + endif() + + # detect current GTK+ backend + pkg_check_variable(gtk+-2.0 target) + message("GTK2 backend: ${GTK+_2.0_TARGET}") +endif(APPLE) + # ----------------------------------------------------------------------------- # CMake Configuration # ----------------------------------------------------------------------------- @@ -19,6 +72,7 @@ project(inkscape) set(INKSCAPE_VERSION 0.92pre1) set(PROJECT_NAME inkscape) set(CMAKE_INCLUDE_CURRENT_DIR TRUE) + if(APPLE) SET(CMAKE_MACOSX_RPATH TRUE) SET(CMAKE_INSTALL_RPATH "@loader_path/../lib/inkscape") @@ -40,29 +94,6 @@ endif() include(CMakeScripts/HelperFunctions.cmake) -# ----------------------------------------------------------------------------- -# Set platform defaults (originally copied from darktable) -# ----------------------------------------------------------------------------- -if(APPLE) - message("-- Mac OS X build detected, setting default features") - # prefer macports and/or user-installed libraries over system ones - #LIST(APPEND CMAKE_PREFIX_PATH /opt/local /usr/local) - set(CMAKE_FIND_FRAMEWORK "LAST") - - # test and display relevant env variables - if(DEFINED ENV{CMAKE_PREFIX_PATH}) - message("CMAKE_PREFIX_PATH: $ENV{CMAKE_PREFIX_PATH}") - endif() - if(DEFINED ENV{GTKMM_BASEPATH}) - message("GTKMM_BASEPATH: $ENV{GTKMM_BASEPATH}") - endif() - - # detect current GTK+ backend - pkg_check_variable(gtk+-2.0 target) - message("GTK2 backend: ${GTK+_2.0_TARGET}") - -endif(APPLE) - # ----------------------------------------------------------------------------- # Redirect output files # ----------------------------------------------------------------------------- @@ -104,7 +135,6 @@ else() message("No gmock/gtest found! Perhaps you wish to run 'bash download-gtest.sh' to download it.") endif() -include(CMakeScripts/ConfigPaths.cmake) # Installation Paths include(CMakeScripts/DefineDependsandFlags.cmake) # Includes, Compiler Flags, and Link Libraries include(CMakeScripts/HelperMacros.cmake) # Misc Utility Macros @@ -182,8 +212,15 @@ endforeach() # Installation # ----------------------------------------------------------------------------- if(UNIX) + #Define the installation + install( + TARGETS inkscape_base inkscape inkview + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib/inkscape + ARCHIVE DESTINATION lib/inkscape + ) + #The install directive for the binaries and libraries are found in src/CMakeList.txt - install( FILES ${CMAKE_BINARY_DIR}/inkscape.desktop DESTINATION ${CMAKE_INSTALL_PREFIX}/${SHARE_INSTALL}/applications @@ -191,10 +228,179 @@ if(UNIX) # this should probably be done no matter what the platform is, just set SHARE_INSTALL first add_subdirectory(share) - -else() - # TODO, WIN32, APPLE/OSX, MinGW - +elseif(WIN32) + set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/inkscape) + + install(PROGRAMS + ${EXECUTABLE_OUTPUT_PATH}/inkscape.exe + ${EXECUTABLE_OUTPUT_PATH}/inkview.exe + DESTINATION ${CMAKE_INSTALL_PREFIX} + ) + + install(FILES + ${LIBRARY_OUTPUT_PATH}/libinkscape_base.dll + ${LIBRARY_OUTPUT_PATH}/libgrid2.dll + DESTINATION ${CMAKE_INSTALL_PREFIX} + ) + + # devlibs and mingw dlls + install(FILES + AUTHORS + COPYING + NEWS + README + TRANSLATORS + ${DEVLIBS_BIN}/libatkmm-1.6-1.dll + ${DEVLIBS_BIN}/libglibmm-2.4-1.dll + ${DEVLIBS_BIN}/libgiomm-2.4-1.dll + ${DEVLIBS_BIN}/libgtkmm-2.4-1.dll + ${DEVLIBS_BIN}/libgdkmm-2.4-1.dll + ${DEVLIBS_BIN}/libpangomm-1.4-1.dll + ${DEVLIBS_BIN}/libcairomm-1.0-1.dll + ${DEVLIBS_BIN}/libsigc-2.0-0.dll + ${DEVLIBS_BIN}/libfreetype-6.dll + ${DEVLIBS_BIN}/libffi-6.dll + ${DEVLIBS_BIN}/libgc-1.dll + ${DEVLIBS_BIN}/libgsl-19.dll + ${DEVLIBS_BIN}/libgslcblas-0.dll + ${DEVLIBS_BIN}/libharfbuzz-0.dll + ${DEVLIBS_BIN}/liblzma-5.dll + ${DEVLIBS_BIN}/libaspell-15.dll + ${DEVLIBS_BIN}/libatk-1.0-0.dll + ${DEVLIBS_BIN}/libgdk-win32-2.0-0.dll + ${DEVLIBS_BIN}/libgdk_pixbuf-2.0-0.dll + ${DEVLIBS_BIN}/libglib-2.0-0.dll + ${DEVLIBS_BIN}/libgmodule-2.0-0.dll + ${DEVLIBS_BIN}/libgobject-2.0-0.dll + ${DEVLIBS_BIN}/libgtk-win32-2.0-0.dll + ${DEVLIBS_BIN}/libgthread-2.0-0.dll + ${DEVLIBS_BIN}/libgio-2.0-0.dll + ${DEVLIBS_BIN}/libcairo-2.dll + ${DEVLIBS_BIN}/libpixman-1-0.dll + ${DEVLIBS_BIN}/libpoppler-58.dll + ${DEVLIBS_BIN}/libpoppler-glib-8.dll + ${DEVLIBS_BIN}/libpangocairo-1.0-0.dll + ${DEVLIBS_BIN}/libpango-1.0-0.dll + ${DEVLIBS_BIN}/libpangoft2-1.0-0.dll + ${DEVLIBS_BIN}/libpangowin32-1.0-0.dll + ${DEVLIBS_BIN}/libfontconfig-1.dll + ${DEVLIBS_BIN}/libxml2-2.dll + ${DEVLIBS_BIN}/libxslt-1.dll + ${DEVLIBS_BIN}/libexslt-0.dll + ${DEVLIBS_BIN}/libexpat-1.dll + ${DEVLIBS_BIN}/librevenge-0.0.dll + ${DEVLIBS_BIN}/librevenge-stream-0.0.dll + ${DEVLIBS_BIN}/libwpg-0.3.dll + ${DEVLIBS_BIN}/libwpd-0.10.dll + ${DEVLIBS_BIN}/libvisio-0.1.dll + ${DEVLIBS_BIN}/libcdr-0.1.dll + ${DEVLIBS_BIN}/icuin56.dll + ${DEVLIBS_BIN}/icudt56.dll + ${DEVLIBS_BIN}/icuuc56.dll + ${DEVLIBS_BIN}/libjpeg-9.dll + ${DEVLIBS_BIN}/libpng16-16.dll + ${DEVLIBS_BIN}/libtiff-5.dll + ${DEVLIBS_BIN}/libexif-12.dll + ${DEVLIBS_BIN}/libcurl-4.dll + ${DEVLIBS_BIN}/zlib1.dll + ${DEVLIBS_BIN}/bz2-1.dll + ${DEVLIBS_BIN}/libiconv-2.dll + ${DEVLIBS_BIN}/libpopt-0.dll + ${DEVLIBS_BIN}/liblcms2-2.dll + ${DEVLIBS_BIN}/libMagick++-6.Q16-6.dll + ${DEVLIBS_BIN}/libMagickCore-6.Q16-2.dll + ${DEVLIBS_BIN}/libMagickWand-6.Q16-2.dll + ${DEVLIBS_BIN}/libintl-8.dll + ${DEVLIBS_BIN}/libpotrace-0.dll + ${MINGW_BIN}/libstdc++-6.dll + ${MINGW_BIN}/libwinpthread-1.dll + ${MINGW_BIN}/libgcc_s_seh-1.dll + ${MINGW_BIN}/libgomp-1.dll + DESTINATION ${CMAKE_INSTALL_PREFIX}) + + # Setup application data directories, poppler files, locales, icons and themes + file(MAKE_DIRECTORY + data + doc + modules + plugins) + + install(DIRECTORY + data + doc + modules + plugins + share + DESTINATION ${CMAKE_INSTALL_PREFIX} + PATTERN Adwaita EXCLUDE # NOTE: The theme is not used on Windows. + PATTERN hicolor/index.theme EXCLUDE # NOTE: Empty index.theme in hicolor icon theme causes SIGSEGV. + PATTERN CMakeLists.txt EXCLUDE + PATTERN *.am EXCLUDE) + + install(DIRECTORY ${DEVLIBS_PATH}/share/themes + DESTINATION ${CMAKE_INSTALL_PREFIX}/share) + + install(DIRECTORY ${DEVLIBS_PATH}/share/poppler + DESTINATION ${CMAKE_INSTALL_PREFIX}/share) + + install(DIRECTORY ${DEVLIBS_PATH}/etc/fonts + DESTINATION ${CMAKE_INSTALL_PREFIX}/etc) + + install(DIRECTORY ${DEVLIBS_PATH}/share/locale + DESTINATION ${CMAKE_INSTALL_PREFIX}) + + install(DIRECTORY ${DEVLIBS_PATH}/etc/gtk-2.0 + DESTINATION ${CMAKE_INSTALL_PREFIX}/etc) + + # GTK 2.0 + install(DIRECTORY ${DEVLIBS_LIB}/gtk-2.0 + DESTINATION ${CMAKE_INSTALL_PREFIX}/lib + FILES_MATCHING + PATTERN "*.dll" + PATTERN "*.cache") + + install(DIRECTORY ${DEVLIBS_LIB}/gdk-pixbuf-2.0 + DESTINATION ${CMAKE_INSTALL_PREFIX}/lib + FILES_MATCHING + PATTERN "*.dll" + PATTERN "*.cache") + + # Aspell dictionaries + install(DIRECTORY ${DEVLIBS_LIB}/aspell-0.60 + DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) + + # Necessary to run extensions on windows if it is not in the path + if (CMAKE_SYSTEM_PROCESSOR MATCHES "AMD64") + install(FILES + ${DEVLIBS_BIN}/gspawn-win64-helper.exe + ${DEVLIBS_BIN}/gspawn-win64-helper-console.exe + DESTINATION ${CMAKE_INSTALL_PREFIX}) + else() + install(FILES + ${DEVLIBS_BIN}/gspawn-win32-helper.exe + ${DEVLIBS_BIN}/gspawn-win32-helper-console.exe + DESTINATION ${CMAKE_INSTALL_PREFIX}) + endif() + + # Perl + install(FILES + ${DEVLIBS_PATH}/perl/bin/perl58.dll + DESTINATION ${CMAKE_INSTALL_PREFIX}) + + # Python + install(FILES + ${DEVLIBS_PATH}/python/python.exe + ${DEVLIBS_PATH}/python/pythonw.exe + ${DEVLIBS_PATH}/python/python27.dll + DESTINATION ${CMAKE_INSTALL_PREFIX}/python) + + install(DIRECTORY ${DEVLIBS_PATH}/python/lib + DESTINATION ${CMAKE_INSTALL_PREFIX}/python) + + install(DIRECTORY ${DEVLIBS_PATH}/python/dlls + DESTINATION ${CMAKE_INSTALL_PREFIX}/python) +elseif(APPLE) + # TODO endif() # ----------------------------------------------------------------------------- @@ -239,6 +445,7 @@ message("") # cmake info message("CMAKE_BINARY_DIR: ${CMAKE_BINARY_DIR}") +message("CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}") message("CMAKE_SYSTEM_NAME: ${CMAKE_SYSTEM_NAME}") message("CMAKE_SYSTEM_VERSION: ${CMAKE_SYSTEM_VERSION}") message("CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}") @@ -247,6 +454,13 @@ message("CMAKE_CXX_COMPILER: ${CMAKE_CXX_COMPILER}") message("CMAKE_BUILD_TYPE: ${CMAKE_BUILD_TYPE}") message("") +if(WIN32) +message("CMAKE_PREFIX_PATH: ${CMAKE_PREFIX_PATH}") +message("CMAKE_FIND_LIBRARY_PREFIXES: ${CMAKE_FIND_LIBRARY_PREFIXES}") +message("CMAKE_FIND_LIBRARY_SUFFIXES: ${CMAKE_FIND_LIBRARY_SUFFIXES}") +message("") +endif() + # dependency info message("ENABLE_LCMS: ${ENABLE_LCMS}") message("ENABLE_POPPLER: ${ENABLE_POPPLER}") @@ -263,4 +477,22 @@ message("WITH_LIBWPG: ${WITH_LIBWPG}") message("WITH_NLS: ${WITH_NLS}") message("WITH_OPENMP: ${WITH_OPENMP}") message("WITH_PROFILING: ${WITH_PROFILING}") + +if(WIN32) +message("") +message("HAVE_MINGW: ${HAVE_MINGW}") +message("HAVE_MINGW64: ${HAVE_MINGW64}") +message("MINGW_PATH: ${MINGW_PATH}") +message("MINGW_ARCH: ${MINGW_ARCH}") +message("MINGW_ARCH_PATH: ${MINGW_ARCH_PATH}") +message("MINGW64_INCLUDE: ${MINGW64_INCLUDE}") +message("MINGW64_LIB: ${MINGW64_LIB}") +message("DEVLIBS_PATH: ${DEVLIBS_PATH}") +message("DEVLIBS_LIB: ${DEVLIBS_LIB}") +message("DEVLIBS_BIN: ${DEVLIBS_BIN}") +message("PKG_CONFIG_PATH: ${PKG_CONFIG_PATH}") +message("GS_PATH ${GS_PATH}") +message("GS_BIN ${GS_BIN}") +endif() + message("------------------------------------------------------------------------") diff --git a/CMakeScripts/ConfigPaths.cmake b/CMakeScripts/ConfigPaths.cmake index 3b13a7734..09cd96df0 100644 --- a/CMakeScripts/ConfigPaths.cmake +++ b/CMakeScripts/ConfigPaths.cmake @@ -1,6 +1,156 @@ message(STATUS "Creating build files in: ${CMAKE_CURRENT_BINARY_DIR}") if(WIN32) +# Directory containing the precompiled Inkscape libraries. Usually c:\devlibs or c:\devlibs64 + set(DEVLIBS_PATH C:/devlibs64) + + # Directory containing the MinGW instance used for compilation. Usually c:\mingw or c:\mingw64 + set(MINGW_PATH C:/mingw64) + + # Directory containing the Ghostscript installation. + set(GS_PATH C:/latex/gs/gs8.61) + + # Normalize directory separator slashes. + string(REGEX REPLACE "\\\\" "/" DEVLIBS_PATH ${DEVLIBS_PATH}) + string(REGEX REPLACE "\\\\" "/" MINGW_PATH ${MINGW_PATH}) + string(REGEX REPLACE "\\\\" "/" GS_PATH ${GS_PATH}) + + # =============== DEVLIBS CHECKS =============== + + # Directory containing the compile time .dll.a and .a files. + set(DEVLIBS_LIB "${DEVLIBS_PATH}/lib") + + if(NOT EXISTS "${DEVLIBS_LIB}") + message(FATAL_ERROR "Inkscape development libraries directory does not exist: ${DEVLIBS_LIB}") + endif() + + # Add devlibs libraries to linker path. + link_directories(${DEVLIBS_LIB}) + + set(DEVLIBS_INCLUDE ${DEVLIBS_PATH}/include) + + if(NOT EXISTS ${DEVLIBS_INCLUDE}) + message(FATAL_ERROR "Inkscape development libraries directory does not exist: ${DEVLIBS_INCLUDE}") + endif() + + # Add general MinGW headers to compiler include path. + #include_directories(${DEVLIBS_INCLUDE}) + + # Directory containing the precompiled .dll files. + set(DEVLIBS_BIN ${DEVLIBS_PATH}/bin) + + if(NOT EXISTS ${DEVLIBS_BIN}) + message(FATAL_ERROR "Inkscape development binaries directory does not exist: ${DEVLIBS_BIN}") + endif() + + # Directory containing the pkgconfig .pc files. + set(PKG_CONFIG_PATH "${DEVLIBS_PATH}/lib/pkgconfig") + + if(NOT EXISTS "${PKG_CONFIG_PATH}") + message(FATAL_ERROR "pkgconfig directory does not exist: ${PKG_CONFIG_PATH}") + endif() + + # Add the devlibs directories to the paths used to find libraries and programs. + list(APPEND CMAKE_PREFIX_PATH ${DEVLIBS_PATH}) + + # Eliminate error messages when not having mingw in the environment path variable. + list(APPEND CMAKE_PROGRAM_PATH ${DEVLIBS_BIN}) + + # =============== MINGW CHECKS =============== + + # We are in a MinGW environment. + set(HAVE_MINGW ON) + + # Try to determine the MinGW processor architecture. + if(EXISTS ${MINGW_PATH}/mingw32) + set(HAVE_MINGW64 OFF) + set(MINGW_ARCH mingw32) + elseif(EXISTS ${MINGW_PATH}/x86_64-w64-mingw32) + set(HAVE_MINGW64 ON) + set(MINGW_ARCH x86_64-w64-mingw32) + else() + message(FATAL_ERROR "Unable to determine MinGW processor architecture. Are you using an unsupported MinGW version?") + endif() + + # Path to processor architecture specific binaries and libs. + set(MINGW_ARCH_PATH ${MINGW_PATH}/${MINGW_ARCH}) + + set(MINGW_BIN ${MINGW_PATH}/bin) + + if(NOT EXISTS ${MINGW_BIN}) + message(FATAL_ERROR "MinGW binary directory does not exist: ${MINGW_BIN}") + endif() + + # Eliminate error messages when not having mingw in the environment path variable. + list(APPEND CMAKE_PROGRAM_PATH ${MINGW_BIN}) + + set(MINGW_LIB ${MINGW_PATH}/lib) + + if(NOT EXISTS ${MINGW_LIB}) + message(FATAL_ERROR "MinGW library directory does not exist: ${MINGW_LIB}") + endif() + + # Add MinGW libraries to linker path. + link_directories(${MINGW_LIB}) + + set(MINGW_INCLUDE ${MINGW_PATH}/include) + + if(NOT EXISTS ${MINGW_INCLUDE}) + message(FATAL_ERROR "MinGW include directory does not exist: ${MINGW_INCLUDE}") + endif() + + # Add general MinGW headers to compiler include path. + include_directories(${MINGW_INCLUDE}) + + if(HAVE_MINGW64) + set(MINGW64_LIB ${MINGW_ARCH_PATH}/lib) + + if(NOT EXISTS ${MINGW64_LIB}) + message(FATAL_ERROR "MinGW 64-Bit libraries directory does not exist: ${MINGW64_LIB}") + endif() + + # Add 64-Bit libraries to linker path. + link_directories(${MINGW64_LIB}) + + set(MINGW64_INCLUDE ${MINGW_ARCH_PATH}/include) + + if(NOT EXISTS ${MINGW64_INCLUDE}) + message(FATAL_ERROR "MinGW 64-Bit include directory does not exist: ${MINGW64_INCLUDE}") + endif() + + set(MINGW64_INCLUDE_SDL ${MINGW64_INCLUDE}/c++) + + if(NOT EXISTS ${MINGW64_INCLUDE_SDL}) + message(FATAL_ERROR "MinGW 64-Bit SDL include directory does not exist: ${MINGW64_INCLUDE_SDL}") + endif() + + # Add 64-Bit MinGW headers to compiler include path. + include_directories(${MINGW64_INCLUDE}) + #include_directories(${MINGW64_INCLUDE_SDL}) + endif() + + # =============== GHOSTSCRIPT CHECKS =============== + + # Check for Ghostscript. + set(GS_BIN "${GS_PATH}/bin") + + if(EXISTS "${GS_BIN}") + set(HAVE_GS_BIN ON) + else() + set(HAVE_GS_BIN OFF) + endif() + + # =============== LIBRARY AND LINKER =============== + + # Tweak CMake into using Unix-style library names. + set(CMAKE_FIND_LIBRARY_PREFIXES "lib") + set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll.a" ".dll") + + if(NOT HAVE_MINGW64) + list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES ".a") + endif() + + # Directory containing the current locale (translations). set(PACKAGE_LOCALE_DIR "locale") set(SHARE_INSTALL "share" CACHE STRING "Data file install path. Must be a relative path (from CMAKE_INSTALL_PREFIX), with no trailing slash.") else(WIN32) diff --git a/CMakeScripts/DefineDependsandFlags.cmake b/CMakeScripts/DefineDependsandFlags.cmake index 706860a00..b708484af 100644 --- a/CMakeScripts/DefineDependsandFlags.cmake +++ b/CMakeScripts/DefineDependsandFlags.cmake @@ -15,75 +15,31 @@ list(APPEND INKSCAPE_INCS ${PROJECT_SOURCE_DIR} # Files we include # ---------------------------------------------------------------------------- if(WIN32) -message("---------------- BEGIN: Win32 ----------------") - - # The name of the target operating system - set(CMAKE_SYSTEM_NAME Windows) - - message("CMAKE_SYSTEM_NAME: " ${CMAKE_SYSTEM_NAME}) - - set(CMAKE_C_COMPILER gcc) - set(CMAKE_CXX_COMPILER g++) - set(CMAKE_RC_COMPILER windres) - - # Adjust the command line parameters for windres to the verion of MinGW. - set(CMAKE_RC_COMPILER_INIT windres) - enable_language(RC) - set(CMAKE_RC_COMPILE_OBJECT " -O coff -i -o ") - - # Here is the target environment located - set(CMAKE_FIND_ROOT_PATH $ENV{MINGW_PATH}/) - - message("CMAKE_FIND_ROOT_PATH: " ${CMAKE_FIND_ROOT_PATH}) - - # Tweak CMake into using Unix-style library names. - set(CMAKE_FIND_LIBRARY_PREFIXES "lib") - set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll.a" ".dll") - - message("CMAKE_FIND_LIBRARY_PREFIXES: " ${CMAKE_FIND_LIBRARY_PREFIXES}) - message("CMAKE_FIND_LIBRARY_SUFFIXES: " ${CMAKE_FIND_LIBRARY_SUFFIXES}) - - set(SDL_INCLUDE_DIR ${CMAKE_FIND_ROOT_PATH}x86_64-w64-mingw32/include/c++) - - message("SDL_INCLUDE_DIR: " ${SDL_INCLUDE_DIR}) - - #if (${CMAKE_SYSTEM_PROCESSOR} MATCHES "^amd64") - link_directories($ENV{MINGW_PATH}/lib) - link_directories($ENV{DEVLIBS_PATH}/lib) - link_directories($ENV{MINGW_PATH}/x86_64-w64-mingw32/lib) - link_directories($ENV{WINDIR}/system32) - - include_directories($ENV{MINGW_PATH}/include) - - include_directories($ENV{MINGW_PATH}/x86_64-w64-mingw32/include) - include_directories($ENV{MINGW_PATH}/x86_64-w64-mingw32/include/c++) - #endif () - - get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES) - - foreach(dir ${dirs}) - message("CMAKE_INCLUDE_DIR:" ${dir}) - endforeach() - - add_definitions(-DFLT_EPSILON=1e-9) - add_definitions(-DFLT_MAX=1e+37) - add_definitions(-DFLT_MIN=1e-37) - - list(APPEND INKSCAPE_LIBS "-lgomp") - list(APPEND INKSCAPE_LIBS "-lwinpthread") - list(APPEND INKSCAPE_LIBS "-lmscms") - - list(APPEND INKSCAPE_CXX_FLAGS "-mwindows") - list(APPEND INKSCAPE_CXX_FLAGS "-mthreads") - list(APPEND INKSCAPE_CXX_FLAGS "-m64") - - # Try to compile using C++ 11. - set(CMAKE_CXX_STANDARD 11) - - message("---------------- END: Win32 ----------------") + # Set the link and include directories + get_property(dirs DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY INCLUDE_DIRECTORIES) + + # MinGW supplied STL does not define these floating point constants.. :/ + add_definitions(-DFLT_EPSILON=1e-9) + add_definitions(-DFLT_MAX=1e+37) + add_definitions(-DFLT_MIN=1e-37) + + list(APPEND INKSCAPE_LIBS "-lmscms") + + list(APPEND INKSCAPE_CXX_FLAGS "-mwindows") + list(APPEND INKSCAPE_CXX_FLAGS "-mthreads") + + if(HAVE_MINGW64) + list(APPEND INKSCAPE_LIBS "-lgomp") + list(APPEND INKSCAPE_LIBS "-lwinpthread") + + list(APPEND INKSCAPE_CXX_FLAGS "-m64") + else() + list(APPEND INKSCAPE_CXX_FLAGS "-m32") + endif() endif() pkg_check_modules(INKSCAPE_DEP REQUIRED pangocairo pangoft2 fontconfig gthread-2.0 gsl gmodule-2.0) + list(APPEND INKSCAPE_LIBS ${INKSCAPE_DEP_LDFLAGS}) list(APPEND INKSCAPE_INCS_SYS ${INKSCAPE_DEP_INCLUDE_DIRS}) list(APPEND INKSCAPE_LIBS ${INKSCAPE_DEP_LIBRARIES}) diff --git a/config.h.cmake b/config.h.cmake index eae54fd03..b30002622 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -232,10 +232,18 @@ #cmakedefine HAVE_ZLIB_H 1 /* Base data directory -- only path-prefix.h should use it! */ +#ifdef WIN32 +#define INKSCAPE_DATADIR "" +#else #define INKSCAPE_DATADIR "${CMAKE_INSTALL_PREFIX}/share" +#endif /* Base library directory -- only path-prefix.h should use it! */ +#ifdef WIN32 +#define INKSCAPE_LIBDIR "\\lib" +#else #define INKSCAPE_LIBDIR "${CMAKE_INSTALL_PREFIX}/lib" +#endif /* Define to 1 if `lstat' dereferences a symlink specified with a trailing slash. */ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 66f16b7fb..d979d7c13 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -2,10 +2,6 @@ # Define the main source # ----------------------------------------------------------------------------- -set(main_SRC - main.cpp -) - set(sp_SRC attribute-rel-css.cpp attribute-rel-svg.cpp @@ -423,21 +419,6 @@ set(inkscape_SRC version.h ) -if(WIN32) - list(APPEND inkscape_SRC - inkscape.rc - registrytool.cpp - #deptool.cpp - winconsole.cpp - winmain.cpp - - # ------- - # Headers - registrytool.h - ) -endif() - - # ----------------------------------------------------------------------------- # Generate version file # ----------------------------------------------------------------------------- @@ -481,7 +462,6 @@ add_subdirectory(widgets) add_subdirectory(xml) add_subdirectory(2geom) - # Directories containing lists files that describe building internal libraries add_subdirectory(libavoid) add_subdirectory(libcola) @@ -494,7 +474,6 @@ add_subdirectory(livarot) add_subdirectory(libnrtype) add_subdirectory(libdepixelize) - get_property(inkscape_global_SRC GLOBAL PROPERTY inkscape_global_SRC) set(inkscape_SRC @@ -508,12 +487,32 @@ set(inkscape_SRC #add_inkscape_lib(sp_LIB "${sp_SRC}") #add_inkscape_lib(inkscape_LIB "${inkscape_SRC}") +if(WIN32) + # Sources for the inkscape executable on Windows. + set(main_SRC + registrytool.h + registrytool.cpp + main.cpp + winmain.cpp + #winconsole.cpp + ) + + # Add the platform specific resource files (enabling the app icon). + if(${HAVE_MINGW64}) + list(APPEND main_SRC inkscape-x64.rc) + else() + list(APPEND main_SRC inkscape.rc) + endif() +else() + set(main_SRC main.cpp) +endif() + # Build everything except main and inkview.c in a shared library. add_library(inkscape_base SHARED ${inkscape_SRC} ${sp_SRC}) # make executables for inkscape and inkview -add_executable(inkscape ${main_SRC} ) -add_executable(inkview inkview.cpp ) +add_executable(inkscape ${main_SRC}) +add_executable(inkview inkview.cpp) add_dependencies(inkscape inkscape_version) @@ -525,11 +524,9 @@ set(INKSCAPE_TARGET_LIBS # order from automake #sp_LIB #nrtype_LIB - #inkscape_LIB #sp_LIB # annoying, we need both! nrtype_LIB # annoying, we need both! - croco_LIB avoid_LIB cola_LIB @@ -548,22 +545,9 @@ if (NOT "${WITH_EXT_GDL}") list (INSERT INKSCAPE_TARGET_LIBS 0 "gdl_LIB") endif() - - - # Link the inkscape_base library against all external dependencies target_link_libraries(inkscape_base ${INKSCAPE_TARGET_LIBS}) # Link inkscape and inkview against inkscape_base -target_link_libraries(inkscape inkscape_base ) -target_link_libraries(inkview inkscape_base) - -#Define the installation -install( - TARGETS inkscape_base inkscape inkview - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib/inkscape - ARCHIVE DESTINATION lib/inkscape - ) - - +target_link_libraries(inkscape inkscape_base) +target_link_libraries(inkview inkscape_base) \ No newline at end of file -- cgit v1.2.3 From c55b258d2131bd51a1a98831324173f544cf236b Mon Sep 17 00:00:00 2001 From: Sebastian Faubel Date: Mon, 4 Jul 2016 10:02:41 +0200 Subject: Fixed locales. (bzr r15002.1.2) --- AUTHORS | 2 ++ CMakeLists.txt | 2 +- CMakeScripts/ConfigPaths.cmake | 2 +- mingwenv.bat | 4 ++-- 4 files changed, 6 insertions(+), 4 deletions(-) diff --git a/AUTHORS b/AUTHORS index 665b32a1e..7dafa6193 100644 --- a/AUTHORS +++ b/AUTHORS @@ -172,3 +172,5 @@ Gellule Xg Daniel Yacob David Yip Masatake Yamato +Moritz Eberl +Sebastian Faubel \ No newline at end of file diff --git a/CMakeLists.txt b/CMakeLists.txt index 74aa54214..489346ca2 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -347,7 +347,7 @@ elseif(WIN32) DESTINATION ${CMAKE_INSTALL_PREFIX}/etc) install(DIRECTORY ${DEVLIBS_PATH}/share/locale - DESTINATION ${CMAKE_INSTALL_PREFIX}) + DESTINATION ${CMAKE_INSTALL_PREFIX}/share) install(DIRECTORY ${DEVLIBS_PATH}/etc/gtk-2.0 DESTINATION ${CMAKE_INSTALL_PREFIX}/etc) diff --git a/CMakeScripts/ConfigPaths.cmake b/CMakeScripts/ConfigPaths.cmake index 09cd96df0..6ce849206 100644 --- a/CMakeScripts/ConfigPaths.cmake +++ b/CMakeScripts/ConfigPaths.cmake @@ -151,7 +151,7 @@ if(WIN32) endif() # Directory containing the current locale (translations). - set(PACKAGE_LOCALE_DIR "locale") + set(PACKAGE_LOCALE_DIR "${CMAKE_INSTALL_PREFIX}/share/locale") set(SHARE_INSTALL "share" CACHE STRING "Data file install path. Must be a relative path (from CMAKE_INSTALL_PREFIX), with no trailing slash.") else(WIN32) # TODO: check and change this to correct value: diff --git a/mingwenv.bat b/mingwenv.bat index 126f3703c..3765b73b5 100755 --- a/mingwenv.bat +++ b/mingwenv.bat @@ -1,6 +1,6 @@ @echo Setting environment variables for MinGw build of Inkscape -IF "%DEVLIBS_PATH%"=="" set DEVLIBS_PATH=c:\devlibs -IF "%MINGW_PATH%"=="" set MINGW_PATH=c:\mingw +IF "%DEVLIBS_PATH%"=="" set DEVLIBS_PATH=c:\devlibs64 +IF "%MINGW_PATH%"=="" set MINGW_PATH=c:\mingw64 set MINGW_BIN=%MINGW_PATH%\bin set PKG_CONFIG_PATH=%DEVLIBS_PATH%\lib\pkgconfig set GS_BIN=C:\latex\gs\gs8.61\bin -- cgit v1.2.3 From 8155c4690b6a74d704eaee3b19fef32c62fd38a4 Mon Sep 17 00:00:00 2001 From: Sebastian Faubel Date: Tue, 5 Jul 2016 12:39:38 +0200 Subject: Refactored the path settings and install scripts. Fixed build for 32-Bit devlibs. (bzr r15002.1.3) --- CMakeLists.txt | 294 ++++------------------------------------- CMakeScripts/ConfigPaths.cmake | 173 ++---------------------- mingwenv.bat | 34 +++-- 3 files changed, 66 insertions(+), 435 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 489346ca2..86ea1ecea 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -6,58 +6,7 @@ message("------------------------------") message("Source Dir: ${CMAKE_CURRENT_SOURCE_DIR}") message("Binary Dir: ${CMAKE_CURRENT_BINARY_DIR}") -# ----------------------------------------------------------------------------- -# Set platform defaults (originally copied from darktable) -# ----------------------------------------------------------------------------- -include(CMakeScripts/ConfigPaths.cmake) - -if(WIN32) - message("-- Windows build detected, setting default features") - - list(INSERT CMAKE_SYSTEM_INCLUDE_PATH 0 ${DEVLIBS_PATH}) - list(INSERT CMAKE_SYSTEM_LIBRARY_PATH 0 ${DEVLIBS_PATH}) - - set(CMAKE_C_COMPILER "${MINGW_BIN}/gcc.exe") - set(CMAKE_C_LINK_EXECUTABLE "${MINGW_BIN}/gcc.exe") - set(CMAKE_CXX_COMPILER "${MINGW_BIN}/g++.exe") - set(CMAKE_CXX_LINK_EXECUTABLE "${MINGW_BIN}/g++.exe") - set(CMAKE_CXX_STANDARD 11) - - # Setup Windows resource files compiler. - set(CMAKE_RC_COMPILER "${MINGW_BIN}/windres.exe") - set(CMAKE_RC_COMPILER_INIT windres) - enable_language(RC) - set(CMAKE_RC_COMPILE_OBJECT " -O coff -i -o ") - - # These options are required for having i18n support on Windows. - option(ENABLE_NLS "Compile with Native Language Support (using gettext)" ON) - option(HAVE_BIND_TEXTDOMAIN_CODESET "Compile with 'bind_textdomain_codeset' function" ON) - - # Does not compile on Windows with these options. - option(BR_PTHREADS "Use binreloc thread support" OFF) - option(ENABLE_BINRELOC "Use AutoPackage" OFF) -endif(WIN32) - -if(APPLE) - message("-- Mac OS X build detected, setting default features") - - # prefer macports and/or user-installed libraries over system ones - #LIST(APPEND CMAKE_PREFIX_PATH /opt/local /usr/local) - set(CMAKE_FIND_FRAMEWORK "LAST") - - # test and display relevant env variables - if(DEFINED ENV{CMAKE_PREFIX_PATH}) - message("CMAKE_PREFIX_PATH: $ENV{CMAKE_PREFIX_PATH}") - endif() - - if(DEFINED ENV{GTKMM_BASEPATH}) - message("GTKMM_BASEPATH: $ENV{GTKMM_BASEPATH}") - endif() - - # detect current GTK+ backend - pkg_check_variable(gtk+-2.0 target) - message("GTK2 backend: ${GTK+_2.0_TARGET}") -endif(APPLE) +include(CMakeScripts/ConfigEnv.cmake) # ----------------------------------------------------------------------------- # CMake Configuration @@ -80,7 +29,6 @@ else() SET(CMAKE_INSTALL_RPATH "$ORIGIN/../lib/inkscape") endif() - cmake_policy(SET CMP0003 NEW) # don't be prolific with library paths cmake_policy(SET CMP0005 NEW) # proper define quoting cmake_policy(SET CMP0009 NEW) # don't follow symbolic links when using GLOB @@ -178,231 +126,47 @@ add_custom_target(uninstall # Subdirs (on only 1 atm), but a lot happens here # ----------------------------------------------------------------------------- add_subdirectory(src) + if(ENABLE_NLS) add_subdirectory(po) endif(ENABLE_NLS) - # ----------------------------------------------------------------------------- # Man pages # ----------------------------------------------------------------------------- -include("CMakeScripts/Pod2man.cmake") - -# Load AUTHORS file contents into $INKSCAPE_AUTHORS -file(READ ${CMAKE_CURRENT_SOURCE_DIR}/AUTHORS content) -string(REGEX REPLACE "^([^\n#]+)\n" "\\1;\n" content_list "${content}") -join(INKSCAPE_AUTHORS "," "${content_list}") - -foreach(podfile - man/inkscape.pod - man/inkscape.de.pod - man/inkscape.el.pod - man/inkscape.fr.pod - man/inkscape.ja.pod - man/inkscape.sk.pod - man/inkscape.zh_TW.pod - man/inkview.pod) - set(POD_IN ${CMAKE_CURRENT_SOURCE_DIR}/${podfile}.in) - set(POD_OUT ${CMAKE_CURRENT_BINARY_DIR}/${podfile}) - configure_file(${POD_IN} ${POD_OUT}) - pod2man(${POD_OUT} ${INKSCAPE_VERSION} 1 "Inkscape Commands Manual") -endforeach() - -# ----------------------------------------------------------------------------- -# Installation -# ----------------------------------------------------------------------------- -if(UNIX) - #Define the installation - install( - TARGETS inkscape_base inkscape inkview - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib/inkscape - ARCHIVE DESTINATION lib/inkscape - ) - - #The install directive for the binaries and libraries are found in src/CMakeList.txt - install( - FILES ${CMAKE_BINARY_DIR}/inkscape.desktop - DESTINATION ${CMAKE_INSTALL_PREFIX}/${SHARE_INSTALL}/applications - ) - - # this should probably be done no matter what the platform is, just set SHARE_INSTALL first - add_subdirectory(share) -elseif(WIN32) - set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/inkscape) - - install(PROGRAMS - ${EXECUTABLE_OUTPUT_PATH}/inkscape.exe - ${EXECUTABLE_OUTPUT_PATH}/inkview.exe - DESTINATION ${CMAKE_INSTALL_PREFIX} - ) - - install(FILES - ${LIBRARY_OUTPUT_PATH}/libinkscape_base.dll - ${LIBRARY_OUTPUT_PATH}/libgrid2.dll - DESTINATION ${CMAKE_INSTALL_PREFIX} - ) - - # devlibs and mingw dlls - install(FILES - AUTHORS - COPYING - NEWS - README - TRANSLATORS - ${DEVLIBS_BIN}/libatkmm-1.6-1.dll - ${DEVLIBS_BIN}/libglibmm-2.4-1.dll - ${DEVLIBS_BIN}/libgiomm-2.4-1.dll - ${DEVLIBS_BIN}/libgtkmm-2.4-1.dll - ${DEVLIBS_BIN}/libgdkmm-2.4-1.dll - ${DEVLIBS_BIN}/libpangomm-1.4-1.dll - ${DEVLIBS_BIN}/libcairomm-1.0-1.dll - ${DEVLIBS_BIN}/libsigc-2.0-0.dll - ${DEVLIBS_BIN}/libfreetype-6.dll - ${DEVLIBS_BIN}/libffi-6.dll - ${DEVLIBS_BIN}/libgc-1.dll - ${DEVLIBS_BIN}/libgsl-19.dll - ${DEVLIBS_BIN}/libgslcblas-0.dll - ${DEVLIBS_BIN}/libharfbuzz-0.dll - ${DEVLIBS_BIN}/liblzma-5.dll - ${DEVLIBS_BIN}/libaspell-15.dll - ${DEVLIBS_BIN}/libatk-1.0-0.dll - ${DEVLIBS_BIN}/libgdk-win32-2.0-0.dll - ${DEVLIBS_BIN}/libgdk_pixbuf-2.0-0.dll - ${DEVLIBS_BIN}/libglib-2.0-0.dll - ${DEVLIBS_BIN}/libgmodule-2.0-0.dll - ${DEVLIBS_BIN}/libgobject-2.0-0.dll - ${DEVLIBS_BIN}/libgtk-win32-2.0-0.dll - ${DEVLIBS_BIN}/libgthread-2.0-0.dll - ${DEVLIBS_BIN}/libgio-2.0-0.dll - ${DEVLIBS_BIN}/libcairo-2.dll - ${DEVLIBS_BIN}/libpixman-1-0.dll - ${DEVLIBS_BIN}/libpoppler-58.dll - ${DEVLIBS_BIN}/libpoppler-glib-8.dll - ${DEVLIBS_BIN}/libpangocairo-1.0-0.dll - ${DEVLIBS_BIN}/libpango-1.0-0.dll - ${DEVLIBS_BIN}/libpangoft2-1.0-0.dll - ${DEVLIBS_BIN}/libpangowin32-1.0-0.dll - ${DEVLIBS_BIN}/libfontconfig-1.dll - ${DEVLIBS_BIN}/libxml2-2.dll - ${DEVLIBS_BIN}/libxslt-1.dll - ${DEVLIBS_BIN}/libexslt-0.dll - ${DEVLIBS_BIN}/libexpat-1.dll - ${DEVLIBS_BIN}/librevenge-0.0.dll - ${DEVLIBS_BIN}/librevenge-stream-0.0.dll - ${DEVLIBS_BIN}/libwpg-0.3.dll - ${DEVLIBS_BIN}/libwpd-0.10.dll - ${DEVLIBS_BIN}/libvisio-0.1.dll - ${DEVLIBS_BIN}/libcdr-0.1.dll - ${DEVLIBS_BIN}/icuin56.dll - ${DEVLIBS_BIN}/icudt56.dll - ${DEVLIBS_BIN}/icuuc56.dll - ${DEVLIBS_BIN}/libjpeg-9.dll - ${DEVLIBS_BIN}/libpng16-16.dll - ${DEVLIBS_BIN}/libtiff-5.dll - ${DEVLIBS_BIN}/libexif-12.dll - ${DEVLIBS_BIN}/libcurl-4.dll - ${DEVLIBS_BIN}/zlib1.dll - ${DEVLIBS_BIN}/bz2-1.dll - ${DEVLIBS_BIN}/libiconv-2.dll - ${DEVLIBS_BIN}/libpopt-0.dll - ${DEVLIBS_BIN}/liblcms2-2.dll - ${DEVLIBS_BIN}/libMagick++-6.Q16-6.dll - ${DEVLIBS_BIN}/libMagickCore-6.Q16-2.dll - ${DEVLIBS_BIN}/libMagickWand-6.Q16-2.dll - ${DEVLIBS_BIN}/libintl-8.dll - ${DEVLIBS_BIN}/libpotrace-0.dll - ${MINGW_BIN}/libstdc++-6.dll - ${MINGW_BIN}/libwinpthread-1.dll - ${MINGW_BIN}/libgcc_s_seh-1.dll - ${MINGW_BIN}/libgomp-1.dll - DESTINATION ${CMAKE_INSTALL_PREFIX}) - - # Setup application data directories, poppler files, locales, icons and themes - file(MAKE_DIRECTORY - data - doc - modules - plugins) - - install(DIRECTORY - data - doc - modules - plugins - share - DESTINATION ${CMAKE_INSTALL_PREFIX} - PATTERN Adwaita EXCLUDE # NOTE: The theme is not used on Windows. - PATTERN hicolor/index.theme EXCLUDE # NOTE: Empty index.theme in hicolor icon theme causes SIGSEGV. - PATTERN CMakeLists.txt EXCLUDE - PATTERN *.am EXCLUDE) - - install(DIRECTORY ${DEVLIBS_PATH}/share/themes - DESTINATION ${CMAKE_INSTALL_PREFIX}/share) - - install(DIRECTORY ${DEVLIBS_PATH}/share/poppler - DESTINATION ${CMAKE_INSTALL_PREFIX}/share) - - install(DIRECTORY ${DEVLIBS_PATH}/etc/fonts - DESTINATION ${CMAKE_INSTALL_PREFIX}/etc) +if(NOT WIN32) + include("CMakeScripts/Pod2man.cmake") - install(DIRECTORY ${DEVLIBS_PATH}/share/locale - DESTINATION ${CMAKE_INSTALL_PREFIX}/share) - - install(DIRECTORY ${DEVLIBS_PATH}/etc/gtk-2.0 - DESTINATION ${CMAKE_INSTALL_PREFIX}/etc) - - # GTK 2.0 - install(DIRECTORY ${DEVLIBS_LIB}/gtk-2.0 - DESTINATION ${CMAKE_INSTALL_PREFIX}/lib - FILES_MATCHING - PATTERN "*.dll" - PATTERN "*.cache") + # Load AUTHORS file contents into $INKSCAPE_AUTHORS + file(READ ${CMAKE_CURRENT_SOURCE_DIR}/AUTHORS content) + string(REGEX REPLACE "^([^\n#]+)\n" "\\1;\n" content_list "${content}") - install(DIRECTORY ${DEVLIBS_LIB}/gdk-pixbuf-2.0 - DESTINATION ${CMAKE_INSTALL_PREFIX}/lib - FILES_MATCHING - PATTERN "*.dll" - PATTERN "*.cache") + join(INKSCAPE_AUTHORS "," "${content_list}") + + foreach(podfile + man/inkscape.pod + man/inkscape.de.pod + man/inkscape.el.pod + man/inkscape.fr.pod + man/inkscape.ja.pod + man/inkscape.sk.pod + man/inkscape.zh_TW.pod + man/inkview.pod) + + set(POD_IN ${CMAKE_CURRENT_SOURCE_DIR}/${podfile}.in) + set(POD_OUT ${CMAKE_CURRENT_BINARY_DIR}/${podfile}) - # Aspell dictionaries - install(DIRECTORY ${DEVLIBS_LIB}/aspell-0.60 - DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) - - # Necessary to run extensions on windows if it is not in the path - if (CMAKE_SYSTEM_PROCESSOR MATCHES "AMD64") - install(FILES - ${DEVLIBS_BIN}/gspawn-win64-helper.exe - ${DEVLIBS_BIN}/gspawn-win64-helper-console.exe - DESTINATION ${CMAKE_INSTALL_PREFIX}) - else() - install(FILES - ${DEVLIBS_BIN}/gspawn-win32-helper.exe - ${DEVLIBS_BIN}/gspawn-win32-helper-console.exe - DESTINATION ${CMAKE_INSTALL_PREFIX}) - endif() - - # Perl - install(FILES - ${DEVLIBS_PATH}/perl/bin/perl58.dll - DESTINATION ${CMAKE_INSTALL_PREFIX}) - - # Python - install(FILES - ${DEVLIBS_PATH}/python/python.exe - ${DEVLIBS_PATH}/python/pythonw.exe - ${DEVLIBS_PATH}/python/python27.dll - DESTINATION ${CMAKE_INSTALL_PREFIX}/python) + configure_file(${POD_IN} ${POD_OUT}) - install(DIRECTORY ${DEVLIBS_PATH}/python/lib - DESTINATION ${CMAKE_INSTALL_PREFIX}/python) - - install(DIRECTORY ${DEVLIBS_PATH}/python/dlls - DESTINATION ${CMAKE_INSTALL_PREFIX}/python) -elseif(APPLE) - # TODO + pod2man(${POD_OUT} ${INKSCAPE_VERSION} 1 "Inkscape Commands Manual") + endforeach() endif() +# ----------------------------------------------------------------------------- +# Installation +# ----------------------------------------------------------------------------- +include(CMakeScripts/Install.cmake) + # ----------------------------------------------------------------------------- # Clean # ----------------------------------------------------------------------------- diff --git a/CMakeScripts/ConfigPaths.cmake b/CMakeScripts/ConfigPaths.cmake index 6ce849206..cfe6c66b6 100644 --- a/CMakeScripts/ConfigPaths.cmake +++ b/CMakeScripts/ConfigPaths.cmake @@ -1,166 +1,17 @@ message(STATUS "Creating build files in: ${CMAKE_CURRENT_BINARY_DIR}") if(WIN32) -# Directory containing the precompiled Inkscape libraries. Usually c:\devlibs or c:\devlibs64 - set(DEVLIBS_PATH C:/devlibs64) - - # Directory containing the MinGW instance used for compilation. Usually c:\mingw or c:\mingw64 - set(MINGW_PATH C:/mingw64) - - # Directory containing the Ghostscript installation. - set(GS_PATH C:/latex/gs/gs8.61) - - # Normalize directory separator slashes. - string(REGEX REPLACE "\\\\" "/" DEVLIBS_PATH ${DEVLIBS_PATH}) - string(REGEX REPLACE "\\\\" "/" MINGW_PATH ${MINGW_PATH}) - string(REGEX REPLACE "\\\\" "/" GS_PATH ${GS_PATH}) - - # =============== DEVLIBS CHECKS =============== - - # Directory containing the compile time .dll.a and .a files. - set(DEVLIBS_LIB "${DEVLIBS_PATH}/lib") - - if(NOT EXISTS "${DEVLIBS_LIB}") - message(FATAL_ERROR "Inkscape development libraries directory does not exist: ${DEVLIBS_LIB}") - endif() - - # Add devlibs libraries to linker path. - link_directories(${DEVLIBS_LIB}) - - set(DEVLIBS_INCLUDE ${DEVLIBS_PATH}/include) - - if(NOT EXISTS ${DEVLIBS_INCLUDE}) - message(FATAL_ERROR "Inkscape development libraries directory does not exist: ${DEVLIBS_INCLUDE}") - endif() - - # Add general MinGW headers to compiler include path. - #include_directories(${DEVLIBS_INCLUDE}) - - # Directory containing the precompiled .dll files. - set(DEVLIBS_BIN ${DEVLIBS_PATH}/bin) - - if(NOT EXISTS ${DEVLIBS_BIN}) - message(FATAL_ERROR "Inkscape development binaries directory does not exist: ${DEVLIBS_BIN}") - endif() - - # Directory containing the pkgconfig .pc files. - set(PKG_CONFIG_PATH "${DEVLIBS_PATH}/lib/pkgconfig") - - if(NOT EXISTS "${PKG_CONFIG_PATH}") - message(FATAL_ERROR "pkgconfig directory does not exist: ${PKG_CONFIG_PATH}") - endif() - - # Add the devlibs directories to the paths used to find libraries and programs. - list(APPEND CMAKE_PREFIX_PATH ${DEVLIBS_PATH}) - - # Eliminate error messages when not having mingw in the environment path variable. - list(APPEND CMAKE_PROGRAM_PATH ${DEVLIBS_BIN}) - - # =============== MINGW CHECKS =============== - - # We are in a MinGW environment. - set(HAVE_MINGW ON) - - # Try to determine the MinGW processor architecture. - if(EXISTS ${MINGW_PATH}/mingw32) - set(HAVE_MINGW64 OFF) - set(MINGW_ARCH mingw32) - elseif(EXISTS ${MINGW_PATH}/x86_64-w64-mingw32) - set(HAVE_MINGW64 ON) - set(MINGW_ARCH x86_64-w64-mingw32) - else() - message(FATAL_ERROR "Unable to determine MinGW processor architecture. Are you using an unsupported MinGW version?") - endif() - - # Path to processor architecture specific binaries and libs. - set(MINGW_ARCH_PATH ${MINGW_PATH}/${MINGW_ARCH}) - - set(MINGW_BIN ${MINGW_PATH}/bin) - - if(NOT EXISTS ${MINGW_BIN}) - message(FATAL_ERROR "MinGW binary directory does not exist: ${MINGW_BIN}") - endif() - - # Eliminate error messages when not having mingw in the environment path variable. - list(APPEND CMAKE_PROGRAM_PATH ${MINGW_BIN}) - - set(MINGW_LIB ${MINGW_PATH}/lib) - - if(NOT EXISTS ${MINGW_LIB}) - message(FATAL_ERROR "MinGW library directory does not exist: ${MINGW_LIB}") - endif() - - # Add MinGW libraries to linker path. - link_directories(${MINGW_LIB}) - - set(MINGW_INCLUDE ${MINGW_PATH}/include) - - if(NOT EXISTS ${MINGW_INCLUDE}) - message(FATAL_ERROR "MinGW include directory does not exist: ${MINGW_INCLUDE}") - endif() - - # Add general MinGW headers to compiler include path. - include_directories(${MINGW_INCLUDE}) - - if(HAVE_MINGW64) - set(MINGW64_LIB ${MINGW_ARCH_PATH}/lib) - - if(NOT EXISTS ${MINGW64_LIB}) - message(FATAL_ERROR "MinGW 64-Bit libraries directory does not exist: ${MINGW64_LIB}") - endif() - - # Add 64-Bit libraries to linker path. - link_directories(${MINGW64_LIB}) - - set(MINGW64_INCLUDE ${MINGW_ARCH_PATH}/include) - - if(NOT EXISTS ${MINGW64_INCLUDE}) - message(FATAL_ERROR "MinGW 64-Bit include directory does not exist: ${MINGW64_INCLUDE}") - endif() - - set(MINGW64_INCLUDE_SDL ${MINGW64_INCLUDE}/c++) - - if(NOT EXISTS ${MINGW64_INCLUDE_SDL}) - message(FATAL_ERROR "MinGW 64-Bit SDL include directory does not exist: ${MINGW64_INCLUDE_SDL}") - endif() - - # Add 64-Bit MinGW headers to compiler include path. - include_directories(${MINGW64_INCLUDE}) - #include_directories(${MINGW64_INCLUDE_SDL}) - endif() - - # =============== GHOSTSCRIPT CHECKS =============== - - # Check for Ghostscript. - set(GS_BIN "${GS_PATH}/bin") - - if(EXISTS "${GS_BIN}") - set(HAVE_GS_BIN ON) - else() - set(HAVE_GS_BIN OFF) - endif() - - # =============== LIBRARY AND LINKER =============== - - # Tweak CMake into using Unix-style library names. - set(CMAKE_FIND_LIBRARY_PREFIXES "lib") - set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll.a" ".dll") - - if(NOT HAVE_MINGW64) - list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES ".a") - endif() - - # Directory containing the current locale (translations). - set(PACKAGE_LOCALE_DIR "${CMAKE_INSTALL_PREFIX}/share/locale") - set(SHARE_INSTALL "share" CACHE STRING "Data file install path. Must be a relative path (from CMAKE_INSTALL_PREFIX), with no trailing slash.") -else(WIN32) - # TODO: check and change this to correct value: - if(NOT PACKAGE_LOCALE_DIR) set(PACKAGE_LOCALE_DIR "${CMAKE_INSTALL_PREFIX}/share/locale") # packagers might overwrite this - endif(NOT PACKAGE_LOCALE_DIR) - - if(NOT SHARE_INSTALL) set(SHARE_INSTALL "share" CACHE STRING "Data file install path. Must be a relative path (from CMAKE_INSTALL_PREFIX), with no trailing slash.") - endif(NOT SHARE_INSTALL) - mark_as_advanced(SHARE_INSTALL) -endif(WIN32) +else() + # TODO: check and change this to correct value: + if(NOT PACKAGE_LOCALE_DIR) + set(PACKAGE_LOCALE_DIR "${CMAKE_INSTALL_PREFIX}/share/locale") # packagers might overwrite this + endif(NOT PACKAGE_LOCALE_DIR) + + if(NOT SHARE_INSTALL) + set(SHARE_INSTALL "share" CACHE STRING "Data file install path. Must be a relative path (from CMAKE_INSTALL_PREFIX), with no trailing slash.") + endif(NOT SHARE_INSTALL) + + mark_as_advanced(SHARE_INSTALL) +endif() \ No newline at end of file diff --git a/mingwenv.bat b/mingwenv.bat index 3765b73b5..02068b72c 100755 --- a/mingwenv.bat +++ b/mingwenv.bat @@ -1,9 +1,25 @@ -@echo Setting environment variables for MinGw build of Inkscape -IF "%DEVLIBS_PATH%"=="" set DEVLIBS_PATH=c:\devlibs64 -IF "%MINGW_PATH%"=="" set MINGW_PATH=c:\mingw64 -set MINGW_BIN=%MINGW_PATH%\bin -set PKG_CONFIG_PATH=%DEVLIBS_PATH%\lib\pkgconfig -set GS_BIN=C:\latex\gs\gs8.61\bin -set PATH=%DEVLIBS_PATH%\bin;%DEVLIBS_PATH%\python;%MINGW_BIN%;%PATH%;%GS_BIN% -set CMAKE_PREFIX_PATH=%DEVLIBS_PATH% -set GTKMM_BASEPATH=%DEVLIBS_PATH% +@echo off + +REM ----------------------------------------------------------------------------- +REM The paths in this file are used if you want to build Inkscape from the +REM the Windows built-in command line (i.e. MSYS). +REM ----------------------------------------------------------------------------- + +REM Directory containing the precompiled Inkscape libraries. Usually c:\devlibs or c:\devlibs64 +if "%DEVLIBS_PATH%"=="" set DEVLIBS_PATH=c:\devlibs + +REM Directory containing the MinGW instance used for compilation. Usually c:\mingw or c:\mingw64 +REM Note: Make sure there are no whitespaces in the path. MinGW doesn't like that.. ;) +if "%MINGW_PATH%"=="" set MINGW_PATH=c:\mingw + +REM Directory containing the (optional) Ghostscript installation. +if "%GS_PATH%"=="" set GS_PATH=C:\latex\gs\gs8.61 + +REM ----------------------------------------------------------------------------- +@echo Setting environment variables for MinGW build of Inkscape.. + +REM Include the MinGW environment in the path to prevent error messages during CMake configure. +set PATH=%DEVLIBS_PATH%\bin;%DEVLIBS_PATH%\python;%MINGW_PATH%\bin;%PATH%;%GS_PATH%\bin + +REM Also set the pkgconfig path to prevent error messages during CMake configure. +set PKG_CONFIG_PATH=%DEVLIBS_PATH%\lib\pkgconfig \ No newline at end of file -- cgit v1.2.3 From 825b2c868bd97252896492838964475dbf504d78 Mon Sep 17 00:00:00 2001 From: Sebastian Faubel Date: Tue, 5 Jul 2016 12:42:03 +0200 Subject: Added missing files. (bzr r15002.1.4) --- CMakeScripts/ConfigEnv.cmake | 54 +++++++++ CMakeScripts/Install.cmake | 273 +++++++++++++++++++++++++++++++++++++++++++ mingwenv.cmake | 184 +++++++++++++++++++++++++++++ 3 files changed, 511 insertions(+) create mode 100644 CMakeScripts/ConfigEnv.cmake create mode 100644 CMakeScripts/Install.cmake create mode 100644 mingwenv.cmake diff --git a/CMakeScripts/ConfigEnv.cmake b/CMakeScripts/ConfigEnv.cmake new file mode 100644 index 000000000..91404f874 --- /dev/null +++ b/CMakeScripts/ConfigEnv.cmake @@ -0,0 +1,54 @@ +# ----------------------------------------------------------------------------- +# Set platform defaults (originally copied from darktable) +# ----------------------------------------------------------------------------- +if(WIN32) + message("-- Windows build detected, setting default features") + + include(mingwenv.cmake) + + list(INSERT CMAKE_SYSTEM_INCLUDE_PATH 0 ${DEVLIBS_PATH}) + list(INSERT CMAKE_SYSTEM_LIBRARY_PATH 0 ${DEVLIBS_PATH}) + + set(CMAKE_C_COMPILER "${MINGW_BIN}/gcc.exe") + set(CMAKE_C_LINK_EXECUTABLE "${MINGW_BIN}/gcc.exe") + set(CMAKE_CXX_COMPILER "${MINGW_BIN}/g++.exe") + set(CMAKE_CXX_LINK_EXECUTABLE "${MINGW_BIN}/g++.exe") + set(CMAKE_CXX_STANDARD 11) + + # Setup Windows resource files compiler. + set(CMAKE_RC_COMPILER "${MINGW_BIN}/windres.exe") + set(CMAKE_RC_COMPILER_INIT windres) + enable_language(RC) + set(CMAKE_RC_COMPILE_OBJECT " -O coff -i -o ") + + # These options are required for having i18n support on Windows. + option(ENABLE_NLS "Compile with Native Language Support (using gettext)" ON) + option(HAVE_BIND_TEXTDOMAIN_CODESET "Compile with 'bind_textdomain_codeset' function" ON) + + # Does not compile on Windows with these options. + option(BR_PTHREADS "Use binreloc thread support" OFF) + option(ENABLE_BINRELOC "Use AutoPackage" OFF) +endif() + +if(APPLE) + message("-- Mac OS X build detected, setting default features") + + # prefer macports and/or user-installed libraries over system ones + #LIST(APPEND CMAKE_PREFIX_PATH /opt/local /usr/local) + set(CMAKE_FIND_FRAMEWORK "LAST") + + # test and display relevant env variables + if(DEFINED ENV{CMAKE_PREFIX_PATH}) + message("CMAKE_PREFIX_PATH: $ENV{CMAKE_PREFIX_PATH}") + endif() + + if(DEFINED ENV{GTKMM_BASEPATH}) + message("GTKMM_BASEPATH: $ENV{GTKMM_BASEPATH}") + endif() + + # detect current GTK+ backend + pkg_check_variable(gtk+-2.0 target) + message("GTK2 backend: ${GTK+_2.0_TARGET}") +endif() + +include(CMakeScripts/ConfigPaths.cmake) \ No newline at end of file diff --git a/CMakeScripts/Install.cmake b/CMakeScripts/Install.cmake new file mode 100644 index 000000000..e7311f080 --- /dev/null +++ b/CMakeScripts/Install.cmake @@ -0,0 +1,273 @@ +if(UNIX) + #Define the installation + install( + TARGETS inkscape_base inkscape inkview + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib/inkscape + ARCHIVE DESTINATION lib/inkscape + ) + + #The install directive for the binaries and libraries are found in src/CMakeList.txt + install( + FILES ${CMAKE_BINARY_DIR}/inkscape.desktop + DESTINATION ${CMAKE_INSTALL_PREFIX}/${SHARE_INSTALL}/applications + ) + + # this should probably be done no matter what the platform is, just set SHARE_INSTALL first + add_subdirectory(share) +elseif(WIN32) + set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/inkscape) + + install(PROGRAMS + ${EXECUTABLE_OUTPUT_PATH}/inkscape.exe + ${EXECUTABLE_OUTPUT_PATH}/inkview.exe + DESTINATION ${CMAKE_INSTALL_PREFIX} + ) + + install(FILES + ${LIBRARY_OUTPUT_PATH}/libinkscape_base.dll + ${LIBRARY_OUTPUT_PATH}/libgrid2.dll + DESTINATION ${CMAKE_INSTALL_PREFIX} + ) + + # devlibs and mingw dlls + install(FILES + AUTHORS + COPYING + NEWS + README + TRANSLATORS + DESTINATION ${CMAKE_INSTALL_PREFIX}) + + # There are differences in the devlibs for 64-Bit and 32-Bit build environments. + if(HAVE_MINGW64) + install(FILES + ${DEVLIBS_BIN}/bz2-1.dll + ${DEVLIBS_BIN}/icudt56.dll + ${DEVLIBS_BIN}/icuin56.dll + ${DEVLIBS_BIN}/icuuc56.dll + ${DEVLIBS_BIN}/libMagick++-6.Q16-6.dll + ${DEVLIBS_BIN}/libMagickCore-6.Q16-2.dll + ${DEVLIBS_BIN}/libMagickWand-6.Q16-2.dll + ${DEVLIBS_BIN}/libaspell-15.dll + ${DEVLIBS_BIN}/libatk-1.0-0.dll + ${DEVLIBS_BIN}/libatkmm-1.6-1.dll + ${DEVLIBS_BIN}/libcairo-2.dll + ${DEVLIBS_BIN}/libcairomm-1.0-1.dll + ${DEVLIBS_BIN}/libcdr-0.1.dll + ${DEVLIBS_BIN}/libcurl-4.dll + ${DEVLIBS_BIN}/libexif-12.dll + ${DEVLIBS_BIN}/libexpat-1.dll + ${DEVLIBS_BIN}/libexslt-0.dll + ${DEVLIBS_BIN}/libffi-6.dll + ${DEVLIBS_BIN}/libfontconfig-1.dll + ${DEVLIBS_BIN}/libfreetype-6.dll + ${DEVLIBS_BIN}/libgc-1.dll + ${DEVLIBS_BIN}/libgdk-win32-2.0-0.dll + ${DEVLIBS_BIN}/libgdk_pixbuf-2.0-0.dll + ${DEVLIBS_BIN}/libgdkmm-2.4-1.dll + ${DEVLIBS_BIN}/libgio-2.0-0.dll + ${DEVLIBS_BIN}/libgiomm-2.4-1.dll + ${DEVLIBS_BIN}/libglib-2.0-0.dll + ${DEVLIBS_BIN}/libglibmm-2.4-1.dll + ${DEVLIBS_BIN}/libgmodule-2.0-0.dll + ${DEVLIBS_BIN}/libgobject-2.0-0.dll + ${DEVLIBS_BIN}/libgsl-19.dll + ${DEVLIBS_BIN}/libgslcblas-0.dll + ${DEVLIBS_BIN}/libgthread-2.0-0.dll + ${DEVLIBS_BIN}/libgtk-win32-2.0-0.dll + ${DEVLIBS_BIN}/libgtkmm-2.4-1.dll + ${DEVLIBS_BIN}/libharfbuzz-0.dll + ${DEVLIBS_BIN}/libiconv-2.dll + ${DEVLIBS_BIN}/libintl-8.dll + ${DEVLIBS_BIN}/libjpeg-9.dll + ${DEVLIBS_BIN}/liblcms2-2.dll + ${DEVLIBS_BIN}/liblzma-5.dll + ${DEVLIBS_BIN}/libpango-1.0-0.dll + ${DEVLIBS_BIN}/libpangocairo-1.0-0.dll + ${DEVLIBS_BIN}/libpangoft2-1.0-0.dll + ${DEVLIBS_BIN}/libpangomm-1.4-1.dll + ${DEVLIBS_BIN}/libpangowin32-1.0-0.dll + ${DEVLIBS_BIN}/libpixman-1-0.dll + ${DEVLIBS_BIN}/libpng16-16.dll + ${DEVLIBS_BIN}/libpoppler-58.dll + ${DEVLIBS_BIN}/libpoppler-glib-8.dll + ${DEVLIBS_BIN}/libpopt-0.dll + ${DEVLIBS_BIN}/libpotrace-0.dll + ${DEVLIBS_BIN}/librevenge-0.0.dll + ${DEVLIBS_BIN}/librevenge-stream-0.0.dll + ${DEVLIBS_BIN}/libsigc-2.0-0.dll + ${DEVLIBS_BIN}/libtiff-5.dll + ${DEVLIBS_BIN}/libvisio-0.1.dll + ${DEVLIBS_BIN}/libwpd-0.10.dll + ${DEVLIBS_BIN}/libwpg-0.3.dll + ${DEVLIBS_BIN}/libxml2-2.dll + ${DEVLIBS_BIN}/libxslt-1.dll + ${DEVLIBS_BIN}/zlib1.dll + ${MINGW_BIN}/libstdc++-6.dll + ${MINGW_BIN}/libwinpthread-1.dll + ${MINGW_BIN}/libgcc_s_seh-1.dll + ${MINGW_BIN}/libgomp-1.dll + DESTINATION ${CMAKE_INSTALL_PREFIX}) + else() + install(FILES + ${DEVLIBS_BIN}/bzip2.dll + ${DEVLIBS_BIN}/freetype6.dll + ${DEVLIBS_BIN}/iconv.dll + ${DEVLIBS_BIN}/icudata50.dll + ${DEVLIBS_BIN}/icui18n50.dll + ${DEVLIBS_BIN}/icuuc50.dll + ${DEVLIBS_BIN}/intl.dll + ${DEVLIBS_BIN}/libMagick++-3.dll + ${DEVLIBS_BIN}/libMagickCore-3.dll + ${DEVLIBS_BIN}/libMagickWand-3.dll + ${DEVLIBS_BIN}/libatk-1.0-0.dll + ${DEVLIBS_BIN}/libatkmm-1.6-1.dll + ${DEVLIBS_BIN}/libcairo-2.dll + ${DEVLIBS_BIN}/libcairomm-1.0-1.dll + ${DEVLIBS_BIN}/libcdr-0.1.dll + ${DEVLIBS_BIN}/libexif-12.dll + ${DEVLIBS_BIN}/libexpat-1.dll + ${DEVLIBS_BIN}/libexslt.dll + ${DEVLIBS_BIN}/libfontconfig-1.dll + ${DEVLIBS_BIN}/libgcc_s_sjlj-1.dll + ${DEVLIBS_BIN}/libgdk-win32-2.0-0.dll + ${DEVLIBS_BIN}/libgdk_pixbuf-2.0-0.dll + ${DEVLIBS_BIN}/libgdkmm-2.4-1.dll + ${DEVLIBS_BIN}/libgio-2.0-0.dll + ${DEVLIBS_BIN}/libgiomm-2.4-1.dll + ${DEVLIBS_BIN}/libglib-2.0-0.dll + ${DEVLIBS_BIN}/libglibmm-2.4-1.dll + ${DEVLIBS_BIN}/libgmodule-2.0-0.dll + ${DEVLIBS_BIN}/libgobject-2.0-0.dll + ${DEVLIBS_BIN}/libgthread-2.0-0.dll + ${DEVLIBS_BIN}/libgtk-win32-2.0-0.dll + ${DEVLIBS_BIN}/libgtkmm-2.4-1.dll + ${DEVLIBS_BIN}/libintl-8.dll + ${DEVLIBS_BIN}/libjpeg-7.dll + ${DEVLIBS_BIN}/liblcms-1.dll + ${DEVLIBS_BIN}/liblcms2-2.dll + ${DEVLIBS_BIN}/libopenjpeg-2.dll + ${DEVLIBS_BIN}/libpango-1.0-0.dll + ${DEVLIBS_BIN}/libpangocairo-1.0-0.dll + ${DEVLIBS_BIN}/libpangoft2-1.0-0.dll + ${DEVLIBS_BIN}/libpangomm-1.4-1.dll + ${DEVLIBS_BIN}/libpangowin32-1.0-0.dll + ${DEVLIBS_BIN}/libpixman-1-0.dll + ${DEVLIBS_BIN}/libpng12-0.dll + ${DEVLIBS_BIN}/libpng14-14.dll + ${DEVLIBS_BIN}/libpoppler-58.dll + ${DEVLIBS_BIN}/libpoppler-glib-8.dll + ${DEVLIBS_BIN}/libpopt-0.dll + ${DEVLIBS_BIN}/librevenge-0.0.dll + ${DEVLIBS_BIN}/librevenge-stream-0.0.dll + ${DEVLIBS_BIN}/libsigc-2.0-0.dll + ${DEVLIBS_BIN}/libtiff-3.dll + ${DEVLIBS_BIN}/libvisio-0.1.dll + ${DEVLIBS_BIN}/libwpd-0.9.dll + ${DEVLIBS_BIN}/libwpd-stream-0.9.dll + ${DEVLIBS_BIN}/libwpg-0.2.dll + ${DEVLIBS_BIN}/libxml2.dll + ${DEVLIBS_BIN}/libxslt.dll + ${DEVLIBS_BIN}/msvcr70.dll + ${DEVLIBS_BIN}/msvcr71.dll + ${DEVLIBS_BIN}/pthreadGC2.dll + ${DEVLIBS_BIN}/zlib1.dll + ${MINGW_BIN}/mingwm10.dll + ${MINGW_BIN}/libgomp-1.dll + DESTINATION ${CMAKE_INSTALL_PREFIX}) + endif() + + # Setup application data directories, poppler files, locales, icons and themes + file(MAKE_DIRECTORY + data + doc + modules + plugins) + + install(DIRECTORY + data + doc + modules + plugins + share + DESTINATION ${CMAKE_INSTALL_PREFIX} + PATTERN Adwaita EXCLUDE # NOTE: The theme is not used on Windows. + PATTERN hicolor/index.theme EXCLUDE # NOTE: Empty index.theme in hicolor icon theme causes SIGSEGV. + PATTERN CMakeLists.txt EXCLUDE + PATTERN *.am EXCLUDE) + + install(DIRECTORY ${DEVLIBS_PATH}/share/themes + DESTINATION ${CMAKE_INSTALL_PREFIX}/share) + + install(DIRECTORY ${DEVLIBS_PATH}/share/locale + DESTINATION ${CMAKE_INSTALL_PREFIX}/share) + + install(DIRECTORY ${DEVLIBS_PATH}/share/poppler + DESTINATION ${CMAKE_INSTALL_PREFIX}/share) + + install(DIRECTORY ${DEVLIBS_PATH}/etc/fonts + DESTINATION ${CMAKE_INSTALL_PREFIX}/etc) + + install(DIRECTORY ${DEVLIBS_PATH}/etc/gtk-2.0 + DESTINATION ${CMAKE_INSTALL_PREFIX}/etc) + + # GTK 2.0 + install(DIRECTORY ${DEVLIBS_LIB}/gtk-2.0 + DESTINATION ${CMAKE_INSTALL_PREFIX}/lib + FILES_MATCHING + PATTERN "*.dll" + PATTERN "*.cache") + + install(DIRECTORY ${DEVLIBS_LIB}/gdk-pixbuf-2.0 + DESTINATION ${CMAKE_INSTALL_PREFIX}/lib + FILES_MATCHING + PATTERN "*.dll" + PATTERN "*.cache") + + # Aspell dictionaries + install(DIRECTORY ${DEVLIBS_LIB}/aspell-0.60 + DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) + + # Necessary to run extensions on windows if it is not in the path + if (HAVE_MINGW64) + install(FILES + ${DEVLIBS_BIN}/gspawn-win64-helper.exe + ${DEVLIBS_BIN}/gspawn-win64-helper-console.exe + DESTINATION ${CMAKE_INSTALL_PREFIX}) + else() + install(FILES + ${DEVLIBS_BIN}/gspawn-win32-helper.exe + ${DEVLIBS_BIN}/gspawn-win32-helper-console.exe + DESTINATION ${CMAKE_INSTALL_PREFIX}) + endif() + + # Perl + install(FILES + ${DEVLIBS_PATH}/perl/bin/perl58.dll + DESTINATION ${CMAKE_INSTALL_PREFIX}) + + # Python + install(FILES + ${DEVLIBS_PATH}/python/python.exe + ${DEVLIBS_PATH}/python/pythonw.exe + DESTINATION ${CMAKE_INSTALL_PREFIX}/python) + + if(HAVE_MINGW64) + install(FILES + ${DEVLIBS_PATH}/python/python27.dll + DESTINATION ${CMAKE_INSTALL_PREFIX}/python) + else() + install(FILES + ${DEVLIBS_PATH}/python/python26.dll + DESTINATION ${CMAKE_INSTALL_PREFIX}/python) + endif() + + install(DIRECTORY ${DEVLIBS_PATH}/python/lib + DESTINATION ${CMAKE_INSTALL_PREFIX}/python) + + install(DIRECTORY ${DEVLIBS_PATH}/python/dlls + DESTINATION ${CMAKE_INSTALL_PREFIX}/python) +elseif(APPLE) + # TODO +endif() \ No newline at end of file diff --git a/mingwenv.cmake b/mingwenv.cmake new file mode 100644 index 000000000..03a653b5d --- /dev/null +++ b/mingwenv.cmake @@ -0,0 +1,184 @@ +# ----------------------------------------------------------------------------- +# Set the paths in this file if you want to build Inkscape from a shell other than the +# Windows built-in command line (i.e. MSYS) or IDEs such as CodeLite. These variables +# will be used as default if no environment variables are set. +# ----------------------------------------------------------------------------- + +# Directory containing the precompiled Inkscape libraries. Usually c:\devlibs or c:\devlibs64 +set(ENV_DEVLIBS_PATH C:/devlibs) + +# Directory containing the MinGW instance used for compilation. Usually c:\mingw or c:\mingw64 +set(ENV_MINGW_PATH C:/mingw) + +# Directory containing the (optional) Ghostscript installation. +set(ENV_GS_PATH C:/latex/gs/gs8.61) + +# ----------------------------------------------------------------------------- +# MinGW Configuration +# ----------------------------------------------------------------------------- +message(STATUS "Configuring MinGW environment:") + +if($ENV{DEVLIBS_PATH} STREQUAL "") + message(STATUS "Setting path to development libraries from mingwenv.cmake: ${ENV_DEVLIBS_PATH}") + set(DEVLIBS_PATH ${ENV_DEVLIBS_PATH}) +else() + message(STATUS "Setting path to development libraries from environment: $ENV{DEVLIBS_PATH}") + set(DEVLIBS_PATH $ENV{DEVLIBS_PATH}) +endif() + +if($ENV{MINGW_PATH} STREQUAL "") + message(STATUS "Setting path to MinGW from mingwenv.cmake: ${ENV_MINGW_PATH}") + set(MINGW_PATH ${ENV_MINGW_PATH}) +else() + message(STATUS "Setting path to MinGW from environment: $ENV{MINGW_PATH}") + set(MINGW_PATH $ENV{MINGW_PATH}) +endif() + +if($ENV{GS_PATH} STREQUAL "") + message(STATUS "Setting path to Ghostscript from mingwenv.cmake: ${ENV_GS_PATH}") + set(GS_PATH ${ENV_GS_PATH}) +else() + message(STATUS "Setting path to Ghostscript from environment: $ENV{GS_PATH}") + set(GS_PATH $ENV{GS_PATH}) +endif() + +# Normalize directory separator slashes. +string(REGEX REPLACE "\\\\" "/" DEVLIBS_PATH ${DEVLIBS_PATH}) +string(REGEX REPLACE "\\\\" "/" MINGW_PATH ${MINGW_PATH}) +string(REGEX REPLACE "\\\\" "/" GS_PATH ${GS_PATH}) + +# ----------------------------------------------------------------------------- +# DEVLIBS CHECKS +# ----------------------------------------------------------------------------- + +# Directory containing the compile time .dll.a and .a files. +set(DEVLIBS_LIB "${DEVLIBS_PATH}/lib") + +if(NOT EXISTS "${DEVLIBS_LIB}") + message(FATAL_ERROR "Inkscape development libraries directory does not exist: ${DEVLIBS_LIB}") +endif() + +# Add devlibs libraries to linker path. +link_directories(${DEVLIBS_LIB}) + +set(DEVLIBS_INCLUDE ${DEVLIBS_PATH}/include) + +if(NOT EXISTS ${DEVLIBS_INCLUDE}) + message(FATAL_ERROR "Inkscape development libraries directory does not exist: ${DEVLIBS_INCLUDE}") +endif() + +# Add general MinGW headers to compiler include path. +#include_directories(${DEVLIBS_INCLUDE}) + +# Directory containing the precompiled .dll files. +set(DEVLIBS_BIN ${DEVLIBS_PATH}/bin) + +if(NOT EXISTS ${DEVLIBS_BIN}) + message(FATAL_ERROR "Inkscape development binaries directory does not exist: ${DEVLIBS_BIN}") +endif() + +# Directory containing the pkgconfig .pc files. +set(PKG_CONFIG_PATH "${DEVLIBS_PATH}/lib/pkgconfig") + +if(NOT EXISTS "${PKG_CONFIG_PATH}") + message(FATAL_ERROR "pkgconfig directory does not exist: ${PKG_CONFIG_PATH}") +endif() + +# Add the devlibs directories to the paths used to find libraries and programs. +list(APPEND CMAKE_PREFIX_PATH ${DEVLIBS_PATH}) + +# Eliminate error messages when not having mingw in the environment path variable. +list(APPEND CMAKE_PROGRAM_PATH ${DEVLIBS_BIN}) + +# ----------------------------------------------------------------------------- +# MINGW CHECKS +# ----------------------------------------------------------------------------- + +# We are in a MinGW environment. +set(HAVE_MINGW ON) + +# Try to determine the MinGW processor architecture. +if(EXISTS ${MINGW_PATH}/mingw32) + set(HAVE_MINGW64 OFF) + set(MINGW_ARCH mingw32) +elseif(EXISTS ${MINGW_PATH}/x86_64-w64-mingw32) + set(HAVE_MINGW64 ON) + set(MINGW_ARCH x86_64-w64-mingw32) +else() + message(FATAL_ERROR "Unable to determine MinGW processor architecture. Are you using an unsupported MinGW version?") +endif() + +# Path to processor architecture specific binaries and libs. +set(MINGW_ARCH_PATH ${MINGW_PATH}/${MINGW_ARCH}) + +set(MINGW_BIN ${MINGW_PATH}/bin) + +if(NOT EXISTS ${MINGW_BIN}) + message(FATAL_ERROR "MinGW binary directory does not exist: ${MINGW_BIN}") +endif() + +# Eliminate error messages when not having mingw in the environment path variable. +list(APPEND CMAKE_PROGRAM_PATH ${MINGW_BIN}) + +set(MINGW_LIB ${MINGW_PATH}/lib) + +if(NOT EXISTS ${MINGW_LIB}) + message(FATAL_ERROR "MinGW library directory does not exist: ${MINGW_LIB}") +endif() + +# Add MinGW libraries to linker path. +link_directories(${MINGW_LIB}) + +set(MINGW_INCLUDE ${MINGW_PATH}/include) + +if(NOT EXISTS ${MINGW_INCLUDE}) + message(FATAL_ERROR "MinGW include directory does not exist: ${MINGW_INCLUDE}") +endif() + +# Add general MinGW headers to compiler include path. +include_directories(SYSTEM ${MINGW_INCLUDE}) + +if(HAVE_MINGW64) + set(MINGW64_LIB ${MINGW_ARCH_PATH}/lib) + + if(NOT EXISTS ${MINGW64_LIB}) + message(FATAL_ERROR "MinGW 64-Bit libraries directory does not exist: ${MINGW64_LIB}") + endif() + + # Add 64-Bit libraries to linker path. + link_directories(${MINGW64_LIB}) + + set(MINGW64_INCLUDE ${MINGW_ARCH_PATH}/include) + + if(NOT EXISTS ${MINGW64_INCLUDE}) + message(FATAL_ERROR "MinGW 64-Bit include directory does not exist: ${MINGW64_INCLUDE}") + endif() + + # Add 64-Bit MinGW headers to compiler include path. + include_directories(${MINGW64_INCLUDE}) +endif() + +# ----------------------------------------------------------------------------- +# GHOSTSCRIPT CHECKS +# ----------------------------------------------------------------------------- + +# Check for Ghostscript. +set(GS_BIN "${GS_PATH}/bin") + +if(EXISTS "${GS_BIN}") + set(HAVE_GS_BIN ON) +else() + set(HAVE_GS_BIN OFF) +endif() + +# ----------------------------------------------------------------------------- +# LIBRARY AND LINKER SETTINGS +# ----------------------------------------------------------------------------- + +# Tweak CMake into using Unix-style library names. +set(CMAKE_FIND_LIBRARY_PREFIXES "lib") +set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll.a" ".dll") + +if(NOT HAVE_MINGW64) + list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES ".a") +endif() \ No newline at end of file -- cgit v1.2.3 From f381a48f549f2a3c4d7ec48a1458e7555306766b Mon Sep 17 00:00:00 2001 From: Sebastian Faubel Date: Wed, 6 Jul 2016 16:04:54 +0200 Subject: Fixed config.h defines to point to the right locations for data (icons) and locales. (bzr r15002.1.5) --- CMakeLists.txt | 1 + CMakeScripts/ConfigPaths.cmake | 13 ++++++++++++- CMakeScripts/Install.cmake | 2 -- config.h.cmake | 12 ++---------- mingwenv.bat | 8 ++++++-- mingwenv.cmake | 38 +++++++++++++++++++------------------- 6 files changed, 40 insertions(+), 34 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 86ea1ecea..51d665128 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -210,6 +210,7 @@ message("") # cmake info message("CMAKE_BINARY_DIR: ${CMAKE_BINARY_DIR}") message("CMAKE_INSTALL_PREFIX: ${CMAKE_INSTALL_PREFIX}") +message("PACKAGE_LOCALE_DIR ${PACKAGE_LOCALE_DIR}") message("CMAKE_SYSTEM_NAME: ${CMAKE_SYSTEM_NAME}") message("CMAKE_SYSTEM_VERSION: ${CMAKE_SYSTEM_VERSION}") message("CMAKE_SYSTEM_PROCESSOR: ${CMAKE_SYSTEM_PROCESSOR}") diff --git a/CMakeScripts/ConfigPaths.cmake b/CMakeScripts/ConfigPaths.cmake index cfe6c66b6..9774d4df2 100644 --- a/CMakeScripts/ConfigPaths.cmake +++ b/CMakeScripts/ConfigPaths.cmake @@ -1,9 +1,20 @@ message(STATUS "Creating build files in: ${CMAKE_CURRENT_BINARY_DIR}") if(WIN32) - set(PACKAGE_LOCALE_DIR "${CMAKE_INSTALL_PREFIX}/share/locale") # packagers might overwrite this + set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/inkscape") + + set(INKSCAPE_LIBDIR "\\\\lib") + set(INKSCAPE_DATADIR "") + + set(PACKAGE_LOCALE_DIR "\\\\share\\\\locale") + set(SHARE_INSTALL "share" CACHE STRING "Data file install path. Must be a relative path (from CMAKE_INSTALL_PREFIX), with no trailing slash.") + + mark_as_advanced(SHARE_INSTALL) else() + set(INKSCAPE_LIBDIR "${CMAKE_INSTALL_PREFIX}/lib") + set(INKSCAPE_DATADIR "${CMAKE_INSTALL_PREFIX}/share") + # TODO: check and change this to correct value: if(NOT PACKAGE_LOCALE_DIR) set(PACKAGE_LOCALE_DIR "${CMAKE_INSTALL_PREFIX}/share/locale") # packagers might overwrite this diff --git a/CMakeScripts/Install.cmake b/CMakeScripts/Install.cmake index e7311f080..6a95ce604 100644 --- a/CMakeScripts/Install.cmake +++ b/CMakeScripts/Install.cmake @@ -16,8 +16,6 @@ if(UNIX) # this should probably be done no matter what the platform is, just set SHARE_INSTALL first add_subdirectory(share) elseif(WIN32) - set(CMAKE_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/inkscape) - install(PROGRAMS ${EXECUTABLE_OUTPUT_PATH}/inkscape.exe ${EXECUTABLE_OUTPUT_PATH}/inkview.exe diff --git a/config.h.cmake b/config.h.cmake index b30002622..00d6fb8b3 100644 --- a/config.h.cmake +++ b/config.h.cmake @@ -232,18 +232,10 @@ #cmakedefine HAVE_ZLIB_H 1 /* Base data directory -- only path-prefix.h should use it! */ -#ifdef WIN32 -#define INKSCAPE_DATADIR "" -#else -#define INKSCAPE_DATADIR "${CMAKE_INSTALL_PREFIX}/share" -#endif +#define INKSCAPE_DATADIR "${INKSCAPE_DATADIR}" /* Base library directory -- only path-prefix.h should use it! */ -#ifdef WIN32 -#define INKSCAPE_LIBDIR "\\lib" -#else -#define INKSCAPE_LIBDIR "${CMAKE_INSTALL_PREFIX}/lib" -#endif +#define INKSCAPE_LIBDIR "${INKSCAPE_LIBDIR}" /* Define to 1 if `lstat' dereferences a symlink specified with a trailing slash. */ diff --git a/mingwenv.bat b/mingwenv.bat index 02068b72c..054e5dcc6 100755 --- a/mingwenv.bat +++ b/mingwenv.bat @@ -6,11 +6,11 @@ REM the Windows built-in command line (i.e. MSYS). REM ----------------------------------------------------------------------------- REM Directory containing the precompiled Inkscape libraries. Usually c:\devlibs or c:\devlibs64 -if "%DEVLIBS_PATH%"=="" set DEVLIBS_PATH=c:\devlibs +if "%DEVLIBS_PATH%"=="" set DEVLIBS_PATH=c:\devlibs64 REM Directory containing the MinGW instance used for compilation. Usually c:\mingw or c:\mingw64 REM Note: Make sure there are no whitespaces in the path. MinGW doesn't like that.. ;) -if "%MINGW_PATH%"=="" set MINGW_PATH=c:\mingw +if "%MINGW_PATH%"=="" set MINGW_PATH=c:\mingw64 REM Directory containing the (optional) Ghostscript installation. if "%GS_PATH%"=="" set GS_PATH=C:\latex\gs\gs8.61 @@ -18,6 +18,10 @@ if "%GS_PATH%"=="" set GS_PATH=C:\latex\gs\gs8.61 REM ----------------------------------------------------------------------------- @echo Setting environment variables for MinGW build of Inkscape.. +@echo DEVLIBS_PATH: %DEVLIBS_PATH% +@echo MINGW_PATH: %MINGW_PATH% +@echo GS_PATH: %GS_PATH% + REM Include the MinGW environment in the path to prevent error messages during CMake configure. set PATH=%DEVLIBS_PATH%\bin;%DEVLIBS_PATH%\python;%MINGW_PATH%\bin;%PATH%;%GS_PATH%\bin diff --git a/mingwenv.cmake b/mingwenv.cmake index 03a653b5d..9f7b8c3b1 100644 --- a/mingwenv.cmake +++ b/mingwenv.cmake @@ -5,10 +5,10 @@ # ----------------------------------------------------------------------------- # Directory containing the precompiled Inkscape libraries. Usually c:\devlibs or c:\devlibs64 -set(ENV_DEVLIBS_PATH C:/devlibs) +set(ENV_DEVLIBS_PATH C:/devlibs64) # Directory containing the MinGW instance used for compilation. Usually c:\mingw or c:\mingw64 -set(ENV_MINGW_PATH C:/mingw) +set(ENV_MINGW_PATH C:/mingw64) # Directory containing the (optional) Ghostscript installation. set(ENV_GS_PATH C:/latex/gs/gs8.61) @@ -18,27 +18,27 @@ set(ENV_GS_PATH C:/latex/gs/gs8.61) # ----------------------------------------------------------------------------- message(STATUS "Configuring MinGW environment:") -if($ENV{DEVLIBS_PATH} STREQUAL "") - message(STATUS "Setting path to development libraries from mingwenv.cmake: ${ENV_DEVLIBS_PATH}") +if("$ENV{DEVLIBS_PATH}" STREQUAL "") + message(STATUS " Setting path to development libraries from mingwenv.cmake: ${ENV_DEVLIBS_PATH}") set(DEVLIBS_PATH ${ENV_DEVLIBS_PATH}) else() - message(STATUS "Setting path to development libraries from environment: $ENV{DEVLIBS_PATH}") + message(STATUS " Setting path to development libraries from environment: $ENV{DEVLIBS_PATH}") set(DEVLIBS_PATH $ENV{DEVLIBS_PATH}) endif() -if($ENV{MINGW_PATH} STREQUAL "") - message(STATUS "Setting path to MinGW from mingwenv.cmake: ${ENV_MINGW_PATH}") +if("$ENV{MINGW_PATH}" STREQUAL "") + message(STATUS " Setting path to MinGW from mingwenv.cmake: ${ENV_MINGW_PATH}") set(MINGW_PATH ${ENV_MINGW_PATH}) else() - message(STATUS "Setting path to MinGW from environment: $ENV{MINGW_PATH}") + message(STATUS " Setting path to MinGW from environment: $ENV{MINGW_PATH}") set(MINGW_PATH $ENV{MINGW_PATH}) endif() -if($ENV{GS_PATH} STREQUAL "") - message(STATUS "Setting path to Ghostscript from mingwenv.cmake: ${ENV_GS_PATH}") +if("$ENV{GS_PATH}" STREQUAL "") + message(STATUS " Setting path to Ghostscript from mingwenv.cmake: ${ENV_GS_PATH}") set(GS_PATH ${ENV_GS_PATH}) else() - message(STATUS "Setting path to Ghostscript from environment: $ENV{GS_PATH}") + message(STATUS " Setting path to Ghostscript from environment: $ENV{GS_PATH}") set(GS_PATH $ENV{GS_PATH}) endif() @@ -98,10 +98,10 @@ list(APPEND CMAKE_PROGRAM_PATH ${DEVLIBS_BIN}) set(HAVE_MINGW ON) # Try to determine the MinGW processor architecture. -if(EXISTS ${MINGW_PATH}/mingw32) +if(EXISTS "${MINGW_PATH}/mingw32") set(HAVE_MINGW64 OFF) set(MINGW_ARCH mingw32) -elseif(EXISTS ${MINGW_PATH}/x86_64-w64-mingw32) +elseif(EXISTS "${MINGW_PATH}/x86_64-w64-mingw32") set(HAVE_MINGW64 ON) set(MINGW_ARCH x86_64-w64-mingw32) else() @@ -109,9 +109,9 @@ else() endif() # Path to processor architecture specific binaries and libs. -set(MINGW_ARCH_PATH ${MINGW_PATH}/${MINGW_ARCH}) +set(MINGW_ARCH_PATH "${MINGW_PATH}/${MINGW_ARCH}") -set(MINGW_BIN ${MINGW_PATH}/bin) +set(MINGW_BIN "${MINGW_PATH}/bin") if(NOT EXISTS ${MINGW_BIN}) message(FATAL_ERROR "MinGW binary directory does not exist: ${MINGW_BIN}") @@ -120,7 +120,7 @@ endif() # Eliminate error messages when not having mingw in the environment path variable. list(APPEND CMAKE_PROGRAM_PATH ${MINGW_BIN}) -set(MINGW_LIB ${MINGW_PATH}/lib) +set(MINGW_LIB "${MINGW_PATH}/lib") if(NOT EXISTS ${MINGW_LIB}) message(FATAL_ERROR "MinGW library directory does not exist: ${MINGW_LIB}") @@ -129,7 +129,7 @@ endif() # Add MinGW libraries to linker path. link_directories(${MINGW_LIB}) -set(MINGW_INCLUDE ${MINGW_PATH}/include) +set(MINGW_INCLUDE "${MINGW_PATH}/include") if(NOT EXISTS ${MINGW_INCLUDE}) message(FATAL_ERROR "MinGW include directory does not exist: ${MINGW_INCLUDE}") @@ -139,7 +139,7 @@ endif() include_directories(SYSTEM ${MINGW_INCLUDE}) if(HAVE_MINGW64) - set(MINGW64_LIB ${MINGW_ARCH_PATH}/lib) + set(MINGW64_LIB "${MINGW_ARCH_PATH}/lib") if(NOT EXISTS ${MINGW64_LIB}) message(FATAL_ERROR "MinGW 64-Bit libraries directory does not exist: ${MINGW64_LIB}") @@ -148,7 +148,7 @@ if(HAVE_MINGW64) # Add 64-Bit libraries to linker path. link_directories(${MINGW64_LIB}) - set(MINGW64_INCLUDE ${MINGW_ARCH_PATH}/include) + set(MINGW64_INCLUDE "${MINGW_ARCH_PATH}/include") if(NOT EXISTS ${MINGW64_INCLUDE}) message(FATAL_ERROR "MinGW 64-Bit include directory does not exist: ${MINGW64_INCLUDE}") -- cgit v1.2.3 From 160893d013fe7be78143dfd0c8ea5fc57b52a806 Mon Sep 17 00:00:00 2001 From: Sebastian Faubel Date: Wed, 6 Jul 2016 16:06:45 +0200 Subject: Removed configure.bat and touch.bat (bzr r15002.1.6) --- configure.bat | 9 --------- touch.bat | 1 - 2 files changed, 10 deletions(-) delete mode 100644 configure.bat delete mode 100644 touch.bat diff --git a/configure.bat b/configure.bat deleted file mode 100644 index 11adb9445..000000000 --- a/configure.bat +++ /dev/null @@ -1,9 +0,0 @@ -REM Set the MinGW environment variables. -if "%MINGW_BIN%"=="" call mingwenv.bat - -REM Delete the CMake cache. Needed when changes on the CMakeLists should be applied in a consistent way. -del CMakeCache.txt -rmdir /s /q CMakeFiles - -REM Configure using the MinGW compiler chain. -cmake -D"CMAKE_SYSTEM_PREFIX_PATH:PATH=C:\MinGW64\mingw64\x86_64-w64-mingw32" -G "MinGW Makefiles" .. diff --git a/touch.bat b/touch.bat deleted file mode 100644 index 043b3eb99..000000000 --- a/touch.bat +++ /dev/null @@ -1 +0,0 @@ -forfiles /s /m *.obj /c "cmd /c copy /b @path +,," \ No newline at end of file -- cgit v1.2.3 From 7b0f2601a652adb7566bfac6ec0eab7a9d95c7a2 Mon Sep 17 00:00:00 2001 From: Sebastian Faubel Date: Wed, 6 Jul 2016 17:42:00 +0200 Subject: Fixing build for Linux. Replaced tabs with whitespaces. (bzr r15002.1.7) --- CMakeScripts/ConfigEnv.cmake | 82 ++-- CMakeScripts/ConfigPaths.cmake | 40 +- CMakeScripts/Install.cmake | 515 ++++++++++++------------ mingwenv.cmake | 94 ++--- src/CMakeLists.txt | 883 +++++++++++++++++++++-------------------- 5 files changed, 808 insertions(+), 806 deletions(-) diff --git a/CMakeScripts/ConfigEnv.cmake b/CMakeScripts/ConfigEnv.cmake index 91404f874..ebd005cb3 100644 --- a/CMakeScripts/ConfigEnv.cmake +++ b/CMakeScripts/ConfigEnv.cmake @@ -2,53 +2,53 @@ # Set platform defaults (originally copied from darktable) # ----------------------------------------------------------------------------- if(WIN32) - message("-- Windows build detected, setting default features") + message("-- Windows build detected, setting default features") - include(mingwenv.cmake) - - list(INSERT CMAKE_SYSTEM_INCLUDE_PATH 0 ${DEVLIBS_PATH}) - list(INSERT CMAKE_SYSTEM_LIBRARY_PATH 0 ${DEVLIBS_PATH}) - - set(CMAKE_C_COMPILER "${MINGW_BIN}/gcc.exe") - set(CMAKE_C_LINK_EXECUTABLE "${MINGW_BIN}/gcc.exe") - set(CMAKE_CXX_COMPILER "${MINGW_BIN}/g++.exe") - set(CMAKE_CXX_LINK_EXECUTABLE "${MINGW_BIN}/g++.exe") - set(CMAKE_CXX_STANDARD 11) - - # Setup Windows resource files compiler. - set(CMAKE_RC_COMPILER "${MINGW_BIN}/windres.exe") - set(CMAKE_RC_COMPILER_INIT windres) - enable_language(RC) - set(CMAKE_RC_COMPILE_OBJECT " -O coff -i -o ") - - # These options are required for having i18n support on Windows. - option(ENABLE_NLS "Compile with Native Language Support (using gettext)" ON) - option(HAVE_BIND_TEXTDOMAIN_CODESET "Compile with 'bind_textdomain_codeset' function" ON) - - # Does not compile on Windows with these options. - option(BR_PTHREADS "Use binreloc thread support" OFF) - option(ENABLE_BINRELOC "Use AutoPackage" OFF) + include(mingwenv.cmake) + + list(INSERT CMAKE_SYSTEM_INCLUDE_PATH 0 ${DEVLIBS_PATH}) + list(INSERT CMAKE_SYSTEM_LIBRARY_PATH 0 ${DEVLIBS_PATH}) + + set(CMAKE_C_COMPILER "${MINGW_BIN}/gcc.exe") + set(CMAKE_C_LINK_EXECUTABLE "${MINGW_BIN}/gcc.exe") + set(CMAKE_CXX_COMPILER "${MINGW_BIN}/g++.exe") + set(CMAKE_CXX_LINK_EXECUTABLE "${MINGW_BIN}/g++.exe") + set(CMAKE_CXX_STANDARD 11) + + # Setup Windows resource files compiler. + set(CMAKE_RC_COMPILER "${MINGW_BIN}/windres.exe") + set(CMAKE_RC_COMPILER_INIT windres) + enable_language(RC) + set(CMAKE_RC_COMPILE_OBJECT " -O coff -i -o ") + + # These options are required for having i18n support on Windows. + option(ENABLE_NLS "Compile with Native Language Support (using gettext)" ON) + option(HAVE_BIND_TEXTDOMAIN_CODESET "Compile with 'bind_textdomain_codeset' function" ON) + + # Does not compile on Windows with these options. + option(BR_PTHREADS "Use binreloc thread support" OFF) + option(ENABLE_BINRELOC "Use AutoPackage" OFF) endif() if(APPLE) - message("-- Mac OS X build detected, setting default features") - - # prefer macports and/or user-installed libraries over system ones - #LIST(APPEND CMAKE_PREFIX_PATH /opt/local /usr/local) - set(CMAKE_FIND_FRAMEWORK "LAST") + message("-- Mac OS X build detected, setting default features") + + # prefer macports and/or user-installed libraries over system ones + #LIST(APPEND CMAKE_PREFIX_PATH /opt/local /usr/local) + set(CMAKE_FIND_FRAMEWORK "LAST") - # test and display relevant env variables - if(DEFINED ENV{CMAKE_PREFIX_PATH}) - message("CMAKE_PREFIX_PATH: $ENV{CMAKE_PREFIX_PATH}") - endif() - - if(DEFINED ENV{GTKMM_BASEPATH}) - message("GTKMM_BASEPATH: $ENV{GTKMM_BASEPATH}") - endif() + # test and display relevant env variables + if(DEFINED ENV{CMAKE_PREFIX_PATH}) + message("CMAKE_PREFIX_PATH: $ENV{CMAKE_PREFIX_PATH}") + endif() + + if(DEFINED ENV{GTKMM_BASEPATH}) + message("GTKMM_BASEPATH: $ENV{GTKMM_BASEPATH}") + endif() - # detect current GTK+ backend - pkg_check_variable(gtk+-2.0 target) - message("GTK2 backend: ${GTK+_2.0_TARGET}") + # detect current GTK+ backend + pkg_check_variable(gtk+-2.0 target) + message("GTK2 backend: ${GTK+_2.0_TARGET}") endif() include(CMakeScripts/ConfigPaths.cmake) \ No newline at end of file diff --git a/CMakeScripts/ConfigPaths.cmake b/CMakeScripts/ConfigPaths.cmake index 9774d4df2..9489ba047 100644 --- a/CMakeScripts/ConfigPaths.cmake +++ b/CMakeScripts/ConfigPaths.cmake @@ -1,28 +1,28 @@ message(STATUS "Creating build files in: ${CMAKE_CURRENT_BINARY_DIR}") if(WIN32) - set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/inkscape") - - set(INKSCAPE_LIBDIR "\\\\lib") - set(INKSCAPE_DATADIR "") - - set(PACKAGE_LOCALE_DIR "\\\\share\\\\locale") - - set(SHARE_INSTALL "share" CACHE STRING "Data file install path. Must be a relative path (from CMAKE_INSTALL_PREFIX), with no trailing slash.") - - mark_as_advanced(SHARE_INSTALL) + set(CMAKE_INSTALL_PREFIX "${CMAKE_BINARY_DIR}/inkscape") + + set(INKSCAPE_LIBDIR "\\\\lib") + set(INKSCAPE_DATADIR "") + + set(PACKAGE_LOCALE_DIR "\\\\share\\\\locale") + + set(SHARE_INSTALL "share" CACHE STRING "Data file install path. Must be a relative path (from CMAKE_INSTALL_PREFIX), with no trailing slash.") + + mark_as_advanced(SHARE_INSTALL) else() - set(INKSCAPE_LIBDIR "${CMAKE_INSTALL_PREFIX}/lib") - set(INKSCAPE_DATADIR "${CMAKE_INSTALL_PREFIX}/share") + set(INKSCAPE_LIBDIR "${CMAKE_INSTALL_PREFIX}/lib") + set(INKSCAPE_DATADIR "${CMAKE_INSTALL_PREFIX}/share") - # TODO: check and change this to correct value: - if(NOT PACKAGE_LOCALE_DIR) - set(PACKAGE_LOCALE_DIR "${CMAKE_INSTALL_PREFIX}/share/locale") # packagers might overwrite this - endif(NOT PACKAGE_LOCALE_DIR) + # TODO: check and change this to correct value: + if(NOT PACKAGE_LOCALE_DIR) + set(PACKAGE_LOCALE_DIR "${CMAKE_INSTALL_PREFIX}/share/locale") # packagers might overwrite this + endif(NOT PACKAGE_LOCALE_DIR) - if(NOT SHARE_INSTALL) - set(SHARE_INSTALL "share" CACHE STRING "Data file install path. Must be a relative path (from CMAKE_INSTALL_PREFIX), with no trailing slash.") - endif(NOT SHARE_INSTALL) + if(NOT SHARE_INSTALL) + set(SHARE_INSTALL "share" CACHE STRING "Data file install path. Must be a relative path (from CMAKE_INSTALL_PREFIX), with no trailing slash.") + endif(NOT SHARE_INSTALL) - mark_as_advanced(SHARE_INSTALL) + mark_as_advanced(SHARE_INSTALL) endif() \ No newline at end of file diff --git a/CMakeScripts/Install.cmake b/CMakeScripts/Install.cmake index 6a95ce604..8306cec16 100644 --- a/CMakeScripts/Install.cmake +++ b/CMakeScripts/Install.cmake @@ -1,271 +1,262 @@ -if(UNIX) - #Define the installation - install( - TARGETS inkscape_base inkscape inkview - RUNTIME DESTINATION bin - LIBRARY DESTINATION lib/inkscape - ARCHIVE DESTINATION lib/inkscape - ) - +if(UNIX) #The install directive for the binaries and libraries are found in src/CMakeList.txt - install( - FILES ${CMAKE_BINARY_DIR}/inkscape.desktop - DESTINATION ${CMAKE_INSTALL_PREFIX}/${SHARE_INSTALL}/applications - ) + install(FILES + ${CMAKE_BINARY_DIR}/inkscape.desktop + DESTINATION ${CMAKE_INSTALL_PREFIX}/${SHARE_INSTALL}/applications) +endif() +if(NOT WIN32) # this should probably be done no matter what the platform is, just set SHARE_INSTALL first - add_subdirectory(share) -elseif(WIN32) - install(PROGRAMS - ${EXECUTABLE_OUTPUT_PATH}/inkscape.exe - ${EXECUTABLE_OUTPUT_PATH}/inkview.exe - DESTINATION ${CMAKE_INSTALL_PREFIX} - ) + add_subdirectory(../share) +else() + install(PROGRAMS + ${EXECUTABLE_OUTPUT_PATH}/inkscape.exe + ${EXECUTABLE_OUTPUT_PATH}/inkview.exe + DESTINATION ${CMAKE_INSTALL_PREFIX} + ) - install(FILES - ${LIBRARY_OUTPUT_PATH}/libinkscape_base.dll - ${LIBRARY_OUTPUT_PATH}/libgrid2.dll - DESTINATION ${CMAKE_INSTALL_PREFIX} - ) - - # devlibs and mingw dlls - install(FILES - AUTHORS - COPYING - NEWS - README - TRANSLATORS - DESTINATION ${CMAKE_INSTALL_PREFIX}) - - # There are differences in the devlibs for 64-Bit and 32-Bit build environments. - if(HAVE_MINGW64) - install(FILES - ${DEVLIBS_BIN}/bz2-1.dll - ${DEVLIBS_BIN}/icudt56.dll - ${DEVLIBS_BIN}/icuin56.dll - ${DEVLIBS_BIN}/icuuc56.dll - ${DEVLIBS_BIN}/libMagick++-6.Q16-6.dll - ${DEVLIBS_BIN}/libMagickCore-6.Q16-2.dll - ${DEVLIBS_BIN}/libMagickWand-6.Q16-2.dll - ${DEVLIBS_BIN}/libaspell-15.dll - ${DEVLIBS_BIN}/libatk-1.0-0.dll - ${DEVLIBS_BIN}/libatkmm-1.6-1.dll - ${DEVLIBS_BIN}/libcairo-2.dll - ${DEVLIBS_BIN}/libcairomm-1.0-1.dll - ${DEVLIBS_BIN}/libcdr-0.1.dll - ${DEVLIBS_BIN}/libcurl-4.dll - ${DEVLIBS_BIN}/libexif-12.dll - ${DEVLIBS_BIN}/libexpat-1.dll - ${DEVLIBS_BIN}/libexslt-0.dll - ${DEVLIBS_BIN}/libffi-6.dll - ${DEVLIBS_BIN}/libfontconfig-1.dll - ${DEVLIBS_BIN}/libfreetype-6.dll - ${DEVLIBS_BIN}/libgc-1.dll - ${DEVLIBS_BIN}/libgdk-win32-2.0-0.dll - ${DEVLIBS_BIN}/libgdk_pixbuf-2.0-0.dll - ${DEVLIBS_BIN}/libgdkmm-2.4-1.dll - ${DEVLIBS_BIN}/libgio-2.0-0.dll - ${DEVLIBS_BIN}/libgiomm-2.4-1.dll - ${DEVLIBS_BIN}/libglib-2.0-0.dll - ${DEVLIBS_BIN}/libglibmm-2.4-1.dll - ${DEVLIBS_BIN}/libgmodule-2.0-0.dll - ${DEVLIBS_BIN}/libgobject-2.0-0.dll - ${DEVLIBS_BIN}/libgsl-19.dll - ${DEVLIBS_BIN}/libgslcblas-0.dll - ${DEVLIBS_BIN}/libgthread-2.0-0.dll - ${DEVLIBS_BIN}/libgtk-win32-2.0-0.dll - ${DEVLIBS_BIN}/libgtkmm-2.4-1.dll - ${DEVLIBS_BIN}/libharfbuzz-0.dll - ${DEVLIBS_BIN}/libiconv-2.dll - ${DEVLIBS_BIN}/libintl-8.dll - ${DEVLIBS_BIN}/libjpeg-9.dll - ${DEVLIBS_BIN}/liblcms2-2.dll - ${DEVLIBS_BIN}/liblzma-5.dll - ${DEVLIBS_BIN}/libpango-1.0-0.dll - ${DEVLIBS_BIN}/libpangocairo-1.0-0.dll - ${DEVLIBS_BIN}/libpangoft2-1.0-0.dll - ${DEVLIBS_BIN}/libpangomm-1.4-1.dll - ${DEVLIBS_BIN}/libpangowin32-1.0-0.dll - ${DEVLIBS_BIN}/libpixman-1-0.dll - ${DEVLIBS_BIN}/libpng16-16.dll - ${DEVLIBS_BIN}/libpoppler-58.dll - ${DEVLIBS_BIN}/libpoppler-glib-8.dll - ${DEVLIBS_BIN}/libpopt-0.dll - ${DEVLIBS_BIN}/libpotrace-0.dll - ${DEVLIBS_BIN}/librevenge-0.0.dll - ${DEVLIBS_BIN}/librevenge-stream-0.0.dll - ${DEVLIBS_BIN}/libsigc-2.0-0.dll - ${DEVLIBS_BIN}/libtiff-5.dll - ${DEVLIBS_BIN}/libvisio-0.1.dll - ${DEVLIBS_BIN}/libwpd-0.10.dll - ${DEVLIBS_BIN}/libwpg-0.3.dll - ${DEVLIBS_BIN}/libxml2-2.dll - ${DEVLIBS_BIN}/libxslt-1.dll - ${DEVLIBS_BIN}/zlib1.dll - ${MINGW_BIN}/libstdc++-6.dll - ${MINGW_BIN}/libwinpthread-1.dll - ${MINGW_BIN}/libgcc_s_seh-1.dll - ${MINGW_BIN}/libgomp-1.dll - DESTINATION ${CMAKE_INSTALL_PREFIX}) - else() - install(FILES - ${DEVLIBS_BIN}/bzip2.dll - ${DEVLIBS_BIN}/freetype6.dll - ${DEVLIBS_BIN}/iconv.dll - ${DEVLIBS_BIN}/icudata50.dll - ${DEVLIBS_BIN}/icui18n50.dll - ${DEVLIBS_BIN}/icuuc50.dll - ${DEVLIBS_BIN}/intl.dll - ${DEVLIBS_BIN}/libMagick++-3.dll - ${DEVLIBS_BIN}/libMagickCore-3.dll - ${DEVLIBS_BIN}/libMagickWand-3.dll - ${DEVLIBS_BIN}/libatk-1.0-0.dll - ${DEVLIBS_BIN}/libatkmm-1.6-1.dll - ${DEVLIBS_BIN}/libcairo-2.dll - ${DEVLIBS_BIN}/libcairomm-1.0-1.dll - ${DEVLIBS_BIN}/libcdr-0.1.dll - ${DEVLIBS_BIN}/libexif-12.dll - ${DEVLIBS_BIN}/libexpat-1.dll - ${DEVLIBS_BIN}/libexslt.dll - ${DEVLIBS_BIN}/libfontconfig-1.dll - ${DEVLIBS_BIN}/libgcc_s_sjlj-1.dll - ${DEVLIBS_BIN}/libgdk-win32-2.0-0.dll - ${DEVLIBS_BIN}/libgdk_pixbuf-2.0-0.dll - ${DEVLIBS_BIN}/libgdkmm-2.4-1.dll - ${DEVLIBS_BIN}/libgio-2.0-0.dll - ${DEVLIBS_BIN}/libgiomm-2.4-1.dll - ${DEVLIBS_BIN}/libglib-2.0-0.dll - ${DEVLIBS_BIN}/libglibmm-2.4-1.dll - ${DEVLIBS_BIN}/libgmodule-2.0-0.dll - ${DEVLIBS_BIN}/libgobject-2.0-0.dll - ${DEVLIBS_BIN}/libgthread-2.0-0.dll - ${DEVLIBS_BIN}/libgtk-win32-2.0-0.dll - ${DEVLIBS_BIN}/libgtkmm-2.4-1.dll - ${DEVLIBS_BIN}/libintl-8.dll - ${DEVLIBS_BIN}/libjpeg-7.dll - ${DEVLIBS_BIN}/liblcms-1.dll - ${DEVLIBS_BIN}/liblcms2-2.dll - ${DEVLIBS_BIN}/libopenjpeg-2.dll - ${DEVLIBS_BIN}/libpango-1.0-0.dll - ${DEVLIBS_BIN}/libpangocairo-1.0-0.dll - ${DEVLIBS_BIN}/libpangoft2-1.0-0.dll - ${DEVLIBS_BIN}/libpangomm-1.4-1.dll - ${DEVLIBS_BIN}/libpangowin32-1.0-0.dll - ${DEVLIBS_BIN}/libpixman-1-0.dll - ${DEVLIBS_BIN}/libpng12-0.dll - ${DEVLIBS_BIN}/libpng14-14.dll - ${DEVLIBS_BIN}/libpoppler-58.dll - ${DEVLIBS_BIN}/libpoppler-glib-8.dll - ${DEVLIBS_BIN}/libpopt-0.dll - ${DEVLIBS_BIN}/librevenge-0.0.dll - ${DEVLIBS_BIN}/librevenge-stream-0.0.dll - ${DEVLIBS_BIN}/libsigc-2.0-0.dll - ${DEVLIBS_BIN}/libtiff-3.dll - ${DEVLIBS_BIN}/libvisio-0.1.dll - ${DEVLIBS_BIN}/libwpd-0.9.dll - ${DEVLIBS_BIN}/libwpd-stream-0.9.dll - ${DEVLIBS_BIN}/libwpg-0.2.dll - ${DEVLIBS_BIN}/libxml2.dll - ${DEVLIBS_BIN}/libxslt.dll - ${DEVLIBS_BIN}/msvcr70.dll - ${DEVLIBS_BIN}/msvcr71.dll - ${DEVLIBS_BIN}/pthreadGC2.dll - ${DEVLIBS_BIN}/zlib1.dll - ${MINGW_BIN}/mingwm10.dll - ${MINGW_BIN}/libgomp-1.dll - DESTINATION ${CMAKE_INSTALL_PREFIX}) - endif() + install(FILES + ${LIBRARY_OUTPUT_PATH}/libinkscape_base.dll + ${LIBRARY_OUTPUT_PATH}/libgrid2.dll + DESTINATION ${CMAKE_INSTALL_PREFIX} + ) + + # devlibs and mingw dlls + install(FILES + AUTHORS + COPYING + NEWS + README + TRANSLATORS + DESTINATION ${CMAKE_INSTALL_PREFIX}) + + # There are differences in the devlibs for 64-Bit and 32-Bit build environments. + if(HAVE_MINGW64) + install(FILES + ${DEVLIBS_BIN}/bz2-1.dll + ${DEVLIBS_BIN}/icudt56.dll + ${DEVLIBS_BIN}/icuin56.dll + ${DEVLIBS_BIN}/icuuc56.dll + ${DEVLIBS_BIN}/libMagick++-6.Q16-6.dll + ${DEVLIBS_BIN}/libMagickCore-6.Q16-2.dll + ${DEVLIBS_BIN}/libMagickWand-6.Q16-2.dll + ${DEVLIBS_BIN}/libaspell-15.dll + ${DEVLIBS_BIN}/libatk-1.0-0.dll + ${DEVLIBS_BIN}/libatkmm-1.6-1.dll + ${DEVLIBS_BIN}/libcairo-2.dll + ${DEVLIBS_BIN}/libcairomm-1.0-1.dll + ${DEVLIBS_BIN}/libcdr-0.1.dll + ${DEVLIBS_BIN}/libcurl-4.dll + ${DEVLIBS_BIN}/libexif-12.dll + ${DEVLIBS_BIN}/libexpat-1.dll + ${DEVLIBS_BIN}/libexslt-0.dll + ${DEVLIBS_BIN}/libffi-6.dll + ${DEVLIBS_BIN}/libfontconfig-1.dll + ${DEVLIBS_BIN}/libfreetype-6.dll + ${DEVLIBS_BIN}/libgc-1.dll + ${DEVLIBS_BIN}/libgdk-win32-2.0-0.dll + ${DEVLIBS_BIN}/libgdk_pixbuf-2.0-0.dll + ${DEVLIBS_BIN}/libgdkmm-2.4-1.dll + ${DEVLIBS_BIN}/libgio-2.0-0.dll + ${DEVLIBS_BIN}/libgiomm-2.4-1.dll + ${DEVLIBS_BIN}/libglib-2.0-0.dll + ${DEVLIBS_BIN}/libglibmm-2.4-1.dll + ${DEVLIBS_BIN}/libgmodule-2.0-0.dll + ${DEVLIBS_BIN}/libgobject-2.0-0.dll + ${DEVLIBS_BIN}/libgsl-19.dll + ${DEVLIBS_BIN}/libgslcblas-0.dll + ${DEVLIBS_BIN}/libgthread-2.0-0.dll + ${DEVLIBS_BIN}/libgtk-win32-2.0-0.dll + ${DEVLIBS_BIN}/libgtkmm-2.4-1.dll + ${DEVLIBS_BIN}/libharfbuzz-0.dll + ${DEVLIBS_BIN}/libiconv-2.dll + ${DEVLIBS_BIN}/libintl-8.dll + ${DEVLIBS_BIN}/libjpeg-9.dll + ${DEVLIBS_BIN}/liblcms2-2.dll + ${DEVLIBS_BIN}/liblzma-5.dll + ${DEVLIBS_BIN}/libpango-1.0-0.dll + ${DEVLIBS_BIN}/libpangocairo-1.0-0.dll + ${DEVLIBS_BIN}/libpangoft2-1.0-0.dll + ${DEVLIBS_BIN}/libpangomm-1.4-1.dll + ${DEVLIBS_BIN}/libpangowin32-1.0-0.dll + ${DEVLIBS_BIN}/libpixman-1-0.dll + ${DEVLIBS_BIN}/libpng16-16.dll + ${DEVLIBS_BIN}/libpoppler-58.dll + ${DEVLIBS_BIN}/libpoppler-glib-8.dll + ${DEVLIBS_BIN}/libpopt-0.dll + ${DEVLIBS_BIN}/libpotrace-0.dll + ${DEVLIBS_BIN}/librevenge-0.0.dll + ${DEVLIBS_BIN}/librevenge-stream-0.0.dll + ${DEVLIBS_BIN}/libsigc-2.0-0.dll + ${DEVLIBS_BIN}/libtiff-5.dll + ${DEVLIBS_BIN}/libvisio-0.1.dll + ${DEVLIBS_BIN}/libwpd-0.10.dll + ${DEVLIBS_BIN}/libwpg-0.3.dll + ${DEVLIBS_BIN}/libxml2-2.dll + ${DEVLIBS_BIN}/libxslt-1.dll + ${DEVLIBS_BIN}/zlib1.dll + ${MINGW_BIN}/libstdc++-6.dll + ${MINGW_BIN}/libwinpthread-1.dll + ${MINGW_BIN}/libgcc_s_seh-1.dll + ${MINGW_BIN}/libgomp-1.dll + DESTINATION ${CMAKE_INSTALL_PREFIX}) + else() + install(FILES + ${DEVLIBS_BIN}/bzip2.dll + ${DEVLIBS_BIN}/freetype6.dll + ${DEVLIBS_BIN}/iconv.dll + ${DEVLIBS_BIN}/icudata50.dll + ${DEVLIBS_BIN}/icui18n50.dll + ${DEVLIBS_BIN}/icuuc50.dll + ${DEVLIBS_BIN}/intl.dll + ${DEVLIBS_BIN}/libMagick++-3.dll + ${DEVLIBS_BIN}/libMagickCore-3.dll + ${DEVLIBS_BIN}/libMagickWand-3.dll + ${DEVLIBS_BIN}/libatk-1.0-0.dll + ${DEVLIBS_BIN}/libatkmm-1.6-1.dll + ${DEVLIBS_BIN}/libcairo-2.dll + ${DEVLIBS_BIN}/libcairomm-1.0-1.dll + ${DEVLIBS_BIN}/libcdr-0.1.dll + ${DEVLIBS_BIN}/libexif-12.dll + ${DEVLIBS_BIN}/libexpat-1.dll + ${DEVLIBS_BIN}/libexslt.dll + ${DEVLIBS_BIN}/libfontconfig-1.dll + ${DEVLIBS_BIN}/libgcc_s_sjlj-1.dll + ${DEVLIBS_BIN}/libgdk-win32-2.0-0.dll + ${DEVLIBS_BIN}/libgdk_pixbuf-2.0-0.dll + ${DEVLIBS_BIN}/libgdkmm-2.4-1.dll + ${DEVLIBS_BIN}/libgio-2.0-0.dll + ${DEVLIBS_BIN}/libgiomm-2.4-1.dll + ${DEVLIBS_BIN}/libglib-2.0-0.dll + ${DEVLIBS_BIN}/libglibmm-2.4-1.dll + ${DEVLIBS_BIN}/libgmodule-2.0-0.dll + ${DEVLIBS_BIN}/libgobject-2.0-0.dll + ${DEVLIBS_BIN}/libgthread-2.0-0.dll + ${DEVLIBS_BIN}/libgtk-win32-2.0-0.dll + ${DEVLIBS_BIN}/libgtkmm-2.4-1.dll + ${DEVLIBS_BIN}/libintl-8.dll + ${DEVLIBS_BIN}/libjpeg-7.dll + ${DEVLIBS_BIN}/liblcms-1.dll + ${DEVLIBS_BIN}/liblcms2-2.dll + ${DEVLIBS_BIN}/libopenjpeg-2.dll + ${DEVLIBS_BIN}/libpango-1.0-0.dll + ${DEVLIBS_BIN}/libpangocairo-1.0-0.dll + ${DEVLIBS_BIN}/libpangoft2-1.0-0.dll + ${DEVLIBS_BIN}/libpangomm-1.4-1.dll + ${DEVLIBS_BIN}/libpangowin32-1.0-0.dll + ${DEVLIBS_BIN}/libpixman-1-0.dll + ${DEVLIBS_BIN}/libpng12-0.dll + ${DEVLIBS_BIN}/libpng14-14.dll + ${DEVLIBS_BIN}/libpoppler-58.dll + ${DEVLIBS_BIN}/libpoppler-glib-8.dll + ${DEVLIBS_BIN}/libpopt-0.dll + ${DEVLIBS_BIN}/librevenge-0.0.dll + ${DEVLIBS_BIN}/librevenge-stream-0.0.dll + ${DEVLIBS_BIN}/libsigc-2.0-0.dll + ${DEVLIBS_BIN}/libtiff-3.dll + ${DEVLIBS_BIN}/libvisio-0.1.dll + ${DEVLIBS_BIN}/libwpd-0.9.dll + ${DEVLIBS_BIN}/libwpd-stream-0.9.dll + ${DEVLIBS_BIN}/libwpg-0.2.dll + ${DEVLIBS_BIN}/libxml2.dll + ${DEVLIBS_BIN}/libxslt.dll + ${DEVLIBS_BIN}/msvcr70.dll + ${DEVLIBS_BIN}/msvcr71.dll + ${DEVLIBS_BIN}/pthreadGC2.dll + ${DEVLIBS_BIN}/zlib1.dll + ${MINGW_BIN}/mingwm10.dll + ${MINGW_BIN}/libgomp-1.dll + DESTINATION ${CMAKE_INSTALL_PREFIX}) + endif() - # Setup application data directories, poppler files, locales, icons and themes - file(MAKE_DIRECTORY - data - doc - modules - plugins) + # Setup application data directories, poppler files, locales, icons and themes + file(MAKE_DIRECTORY + data + doc + modules + plugins) - install(DIRECTORY - data - doc - modules - plugins - share - DESTINATION ${CMAKE_INSTALL_PREFIX} - PATTERN Adwaita EXCLUDE # NOTE: The theme is not used on Windows. - PATTERN hicolor/index.theme EXCLUDE # NOTE: Empty index.theme in hicolor icon theme causes SIGSEGV. - PATTERN CMakeLists.txt EXCLUDE - PATTERN *.am EXCLUDE) - - install(DIRECTORY ${DEVLIBS_PATH}/share/themes - DESTINATION ${CMAKE_INSTALL_PREFIX}/share) - - install(DIRECTORY ${DEVLIBS_PATH}/share/locale - DESTINATION ${CMAKE_INSTALL_PREFIX}/share) - - install(DIRECTORY ${DEVLIBS_PATH}/share/poppler - DESTINATION ${CMAKE_INSTALL_PREFIX}/share) - - install(DIRECTORY ${DEVLIBS_PATH}/etc/fonts - DESTINATION ${CMAKE_INSTALL_PREFIX}/etc) - - install(DIRECTORY ${DEVLIBS_PATH}/etc/gtk-2.0 - DESTINATION ${CMAKE_INSTALL_PREFIX}/etc) - - # GTK 2.0 - install(DIRECTORY ${DEVLIBS_LIB}/gtk-2.0 - DESTINATION ${CMAKE_INSTALL_PREFIX}/lib - FILES_MATCHING - PATTERN "*.dll" - PATTERN "*.cache") + install(DIRECTORY + data + doc + modules + plugins + share + DESTINATION ${CMAKE_INSTALL_PREFIX} + PATTERN Adwaita EXCLUDE # NOTE: The theme is not used on Windows. + PATTERN hicolor/index.theme EXCLUDE # NOTE: Empty index.theme in hicolor icon theme causes SIGSEGV. + PATTERN CMakeLists.txt EXCLUDE + PATTERN *.am EXCLUDE) + + install(DIRECTORY ${DEVLIBS_PATH}/share/themes + DESTINATION ${CMAKE_INSTALL_PREFIX}/share) + + install(DIRECTORY ${DEVLIBS_PATH}/share/locale + DESTINATION ${CMAKE_INSTALL_PREFIX}/share) + + install(DIRECTORY ${DEVLIBS_PATH}/share/poppler + DESTINATION ${CMAKE_INSTALL_PREFIX}/share) + + install(DIRECTORY ${DEVLIBS_PATH}/etc/fonts + DESTINATION ${CMAKE_INSTALL_PREFIX}/etc) + + install(DIRECTORY ${DEVLIBS_PATH}/etc/gtk-2.0 + DESTINATION ${CMAKE_INSTALL_PREFIX}/etc) + + # GTK 2.0 + install(DIRECTORY ${DEVLIBS_LIB}/gtk-2.0 + DESTINATION ${CMAKE_INSTALL_PREFIX}/lib + FILES_MATCHING + PATTERN "*.dll" + PATTERN "*.cache") - install(DIRECTORY ${DEVLIBS_LIB}/gdk-pixbuf-2.0 - DESTINATION ${CMAKE_INSTALL_PREFIX}/lib - FILES_MATCHING - PATTERN "*.dll" - PATTERN "*.cache") - - # Aspell dictionaries - install(DIRECTORY ${DEVLIBS_LIB}/aspell-0.60 - DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) - - # Necessary to run extensions on windows if it is not in the path - if (HAVE_MINGW64) - install(FILES - ${DEVLIBS_BIN}/gspawn-win64-helper.exe - ${DEVLIBS_BIN}/gspawn-win64-helper-console.exe - DESTINATION ${CMAKE_INSTALL_PREFIX}) - else() - install(FILES - ${DEVLIBS_BIN}/gspawn-win32-helper.exe - ${DEVLIBS_BIN}/gspawn-win32-helper-console.exe - DESTINATION ${CMAKE_INSTALL_PREFIX}) - endif() - - # Perl - install(FILES - ${DEVLIBS_PATH}/perl/bin/perl58.dll - DESTINATION ${CMAKE_INSTALL_PREFIX}) + install(DIRECTORY ${DEVLIBS_LIB}/gdk-pixbuf-2.0 + DESTINATION ${CMAKE_INSTALL_PREFIX}/lib + FILES_MATCHING + PATTERN "*.dll" + PATTERN "*.cache") + + # Aspell dictionaries + install(DIRECTORY ${DEVLIBS_LIB}/aspell-0.60 + DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) + + # Necessary to run extensions on windows if it is not in the path + if (HAVE_MINGW64) + install(FILES + ${DEVLIBS_BIN}/gspawn-win64-helper.exe + ${DEVLIBS_BIN}/gspawn-win64-helper-console.exe + DESTINATION ${CMAKE_INSTALL_PREFIX}) + else() + install(FILES + ${DEVLIBS_BIN}/gspawn-win32-helper.exe + ${DEVLIBS_BIN}/gspawn-win32-helper-console.exe + DESTINATION ${CMAKE_INSTALL_PREFIX}) + endif() + + # Perl + install(FILES + ${DEVLIBS_PATH}/perl/bin/perl58.dll + DESTINATION ${CMAKE_INSTALL_PREFIX}) - # Python - install(FILES - ${DEVLIBS_PATH}/python/python.exe - ${DEVLIBS_PATH}/python/pythonw.exe - DESTINATION ${CMAKE_INSTALL_PREFIX}/python) - - if(HAVE_MINGW64) - install(FILES - ${DEVLIBS_PATH}/python/python27.dll - DESTINATION ${CMAKE_INSTALL_PREFIX}/python) - else() - install(FILES - ${DEVLIBS_PATH}/python/python26.dll - DESTINATION ${CMAKE_INSTALL_PREFIX}/python) - endif() - - install(DIRECTORY ${DEVLIBS_PATH}/python/lib - DESTINATION ${CMAKE_INSTALL_PREFIX}/python) - - install(DIRECTORY ${DEVLIBS_PATH}/python/dlls - DESTINATION ${CMAKE_INSTALL_PREFIX}/python) -elseif(APPLE) - # TODO + # Python + install(FILES + ${DEVLIBS_PATH}/python/python.exe + ${DEVLIBS_PATH}/python/pythonw.exe + DESTINATION ${CMAKE_INSTALL_PREFIX}/python) + + if(HAVE_MINGW64) + install(FILES + ${DEVLIBS_PATH}/python/python27.dll + DESTINATION ${CMAKE_INSTALL_PREFIX}/python) + else() + install(FILES + ${DEVLIBS_PATH}/python/python26.dll + DESTINATION ${CMAKE_INSTALL_PREFIX}/python) + endif() + + install(DIRECTORY ${DEVLIBS_PATH}/python/lib + DESTINATION ${CMAKE_INSTALL_PREFIX}/python) + + install(DIRECTORY ${DEVLIBS_PATH}/python/dlls + DESTINATION ${CMAKE_INSTALL_PREFIX}/python) endif() \ No newline at end of file diff --git a/mingwenv.cmake b/mingwenv.cmake index 9f7b8c3b1..ab96541d8 100644 --- a/mingwenv.cmake +++ b/mingwenv.cmake @@ -17,31 +17,31 @@ set(ENV_GS_PATH C:/latex/gs/gs8.61) # MinGW Configuration # ----------------------------------------------------------------------------- message(STATUS "Configuring MinGW environment:") - + if("$ENV{DEVLIBS_PATH}" STREQUAL "") - message(STATUS " Setting path to development libraries from mingwenv.cmake: ${ENV_DEVLIBS_PATH}") - set(DEVLIBS_PATH ${ENV_DEVLIBS_PATH}) + message(STATUS " Setting path to development libraries from mingwenv.cmake: ${ENV_DEVLIBS_PATH}") + set(DEVLIBS_PATH ${ENV_DEVLIBS_PATH}) else() - message(STATUS " Setting path to development libraries from environment: $ENV{DEVLIBS_PATH}") - set(DEVLIBS_PATH $ENV{DEVLIBS_PATH}) + message(STATUS " Setting path to development libraries from environment: $ENV{DEVLIBS_PATH}") + set(DEVLIBS_PATH $ENV{DEVLIBS_PATH}) endif() if("$ENV{MINGW_PATH}" STREQUAL "") - message(STATUS " Setting path to MinGW from mingwenv.cmake: ${ENV_MINGW_PATH}") - set(MINGW_PATH ${ENV_MINGW_PATH}) + message(STATUS " Setting path to MinGW from mingwenv.cmake: ${ENV_MINGW_PATH}") + set(MINGW_PATH ${ENV_MINGW_PATH}) else() - message(STATUS " Setting path to MinGW from environment: $ENV{MINGW_PATH}") - set(MINGW_PATH $ENV{MINGW_PATH}) + message(STATUS " Setting path to MinGW from environment: $ENV{MINGW_PATH}") + set(MINGW_PATH $ENV{MINGW_PATH}) endif() if("$ENV{GS_PATH}" STREQUAL "") - message(STATUS " Setting path to Ghostscript from mingwenv.cmake: ${ENV_GS_PATH}") - set(GS_PATH ${ENV_GS_PATH}) + message(STATUS " Setting path to Ghostscript from mingwenv.cmake: ${ENV_GS_PATH}") + set(GS_PATH ${ENV_GS_PATH}) else() - message(STATUS " Setting path to Ghostscript from environment: $ENV{GS_PATH}") - set(GS_PATH $ENV{GS_PATH}) + message(STATUS " Setting path to Ghostscript from environment: $ENV{GS_PATH}") + set(GS_PATH $ENV{GS_PATH}) endif() - + # Normalize directory separator slashes. string(REGEX REPLACE "\\\\" "/" DEVLIBS_PATH ${DEVLIBS_PATH}) string(REGEX REPLACE "\\\\" "/" MINGW_PATH ${MINGW_PATH}) @@ -55,7 +55,7 @@ string(REGEX REPLACE "\\\\" "/" GS_PATH ${GS_PATH}) set(DEVLIBS_LIB "${DEVLIBS_PATH}/lib") if(NOT EXISTS "${DEVLIBS_LIB}") - message(FATAL_ERROR "Inkscape development libraries directory does not exist: ${DEVLIBS_LIB}") + message(FATAL_ERROR "Inkscape development libraries directory does not exist: ${DEVLIBS_LIB}") endif() # Add devlibs libraries to linker path. @@ -64,7 +64,7 @@ link_directories(${DEVLIBS_LIB}) set(DEVLIBS_INCLUDE ${DEVLIBS_PATH}/include) if(NOT EXISTS ${DEVLIBS_INCLUDE}) - message(FATAL_ERROR "Inkscape development libraries directory does not exist: ${DEVLIBS_INCLUDE}") + message(FATAL_ERROR "Inkscape development libraries directory does not exist: ${DEVLIBS_INCLUDE}") endif() # Add general MinGW headers to compiler include path. @@ -74,14 +74,14 @@ endif() set(DEVLIBS_BIN ${DEVLIBS_PATH}/bin) if(NOT EXISTS ${DEVLIBS_BIN}) - message(FATAL_ERROR "Inkscape development binaries directory does not exist: ${DEVLIBS_BIN}") + message(FATAL_ERROR "Inkscape development binaries directory does not exist: ${DEVLIBS_BIN}") endif() # Directory containing the pkgconfig .pc files. set(PKG_CONFIG_PATH "${DEVLIBS_PATH}/lib/pkgconfig") if(NOT EXISTS "${PKG_CONFIG_PATH}") - message(FATAL_ERROR "pkgconfig directory does not exist: ${PKG_CONFIG_PATH}") + message(FATAL_ERROR "pkgconfig directory does not exist: ${PKG_CONFIG_PATH}") endif() # Add the devlibs directories to the paths used to find libraries and programs. @@ -96,16 +96,16 @@ list(APPEND CMAKE_PROGRAM_PATH ${DEVLIBS_BIN}) # We are in a MinGW environment. set(HAVE_MINGW ON) - + # Try to determine the MinGW processor architecture. if(EXISTS "${MINGW_PATH}/mingw32") - set(HAVE_MINGW64 OFF) - set(MINGW_ARCH mingw32) + set(HAVE_MINGW64 OFF) + set(MINGW_ARCH mingw32) elseif(EXISTS "${MINGW_PATH}/x86_64-w64-mingw32") - set(HAVE_MINGW64 ON) - set(MINGW_ARCH x86_64-w64-mingw32) + set(HAVE_MINGW64 ON) + set(MINGW_ARCH x86_64-w64-mingw32) else() - message(FATAL_ERROR "Unable to determine MinGW processor architecture. Are you using an unsupported MinGW version?") + message(FATAL_ERROR "Unable to determine MinGW processor architecture. Are you using an unsupported MinGW version?") endif() # Path to processor architecture specific binaries and libs. @@ -114,7 +114,7 @@ set(MINGW_ARCH_PATH "${MINGW_PATH}/${MINGW_ARCH}") set(MINGW_BIN "${MINGW_PATH}/bin") if(NOT EXISTS ${MINGW_BIN}) - message(FATAL_ERROR "MinGW binary directory does not exist: ${MINGW_BIN}") + message(FATAL_ERROR "MinGW binary directory does not exist: ${MINGW_BIN}") endif() # Eliminate error messages when not having mingw in the environment path variable. @@ -123,7 +123,7 @@ list(APPEND CMAKE_PROGRAM_PATH ${MINGW_BIN}) set(MINGW_LIB "${MINGW_PATH}/lib") if(NOT EXISTS ${MINGW_LIB}) - message(FATAL_ERROR "MinGW library directory does not exist: ${MINGW_LIB}") + message(FATAL_ERROR "MinGW library directory does not exist: ${MINGW_LIB}") endif() # Add MinGW libraries to linker path. @@ -132,30 +132,30 @@ link_directories(${MINGW_LIB}) set(MINGW_INCLUDE "${MINGW_PATH}/include") if(NOT EXISTS ${MINGW_INCLUDE}) - message(FATAL_ERROR "MinGW include directory does not exist: ${MINGW_INCLUDE}") + message(FATAL_ERROR "MinGW include directory does not exist: ${MINGW_INCLUDE}") endif() # Add general MinGW headers to compiler include path. include_directories(SYSTEM ${MINGW_INCLUDE}) if(HAVE_MINGW64) - set(MINGW64_LIB "${MINGW_ARCH_PATH}/lib") - - if(NOT EXISTS ${MINGW64_LIB}) - message(FATAL_ERROR "MinGW 64-Bit libraries directory does not exist: ${MINGW64_LIB}") - endif() - - # Add 64-Bit libraries to linker path. - link_directories(${MINGW64_LIB}) - - set(MINGW64_INCLUDE "${MINGW_ARCH_PATH}/include") - - if(NOT EXISTS ${MINGW64_INCLUDE}) - message(FATAL_ERROR "MinGW 64-Bit include directory does not exist: ${MINGW64_INCLUDE}") - endif() - - # Add 64-Bit MinGW headers to compiler include path. - include_directories(${MINGW64_INCLUDE}) + set(MINGW64_LIB "${MINGW_ARCH_PATH}/lib") + + if(NOT EXISTS ${MINGW64_LIB}) + message(FATAL_ERROR "MinGW 64-Bit libraries directory does not exist: ${MINGW64_LIB}") + endif() + + # Add 64-Bit libraries to linker path. + link_directories(${MINGW64_LIB}) + + set(MINGW64_INCLUDE "${MINGW_ARCH_PATH}/include") + + if(NOT EXISTS ${MINGW64_INCLUDE}) + message(FATAL_ERROR "MinGW 64-Bit include directory does not exist: ${MINGW64_INCLUDE}") + endif() + + # Add 64-Bit MinGW headers to compiler include path. + include_directories(${MINGW64_INCLUDE}) endif() # ----------------------------------------------------------------------------- @@ -166,9 +166,9 @@ endif() set(GS_BIN "${GS_PATH}/bin") if(EXISTS "${GS_BIN}") - set(HAVE_GS_BIN ON) + set(HAVE_GS_BIN ON) else() - set(HAVE_GS_BIN OFF) + set(HAVE_GS_BIN OFF) endif() # ----------------------------------------------------------------------------- @@ -180,5 +180,5 @@ set(CMAKE_FIND_LIBRARY_PREFIXES "lib") set(CMAKE_FIND_LIBRARY_SUFFIXES ".dll.a" ".dll") if(NOT HAVE_MINGW64) - list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES ".a") + list(APPEND CMAKE_FIND_LIBRARY_SUFFIXES ".a") endif() \ No newline at end of file diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d979d7c13..d4ba9b1f0 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -3,420 +3,420 @@ # ----------------------------------------------------------------------------- set(sp_SRC - attribute-rel-css.cpp - attribute-rel-svg.cpp - attribute-rel-util.cpp - attribute-sort-util.cpp - sp-anchor.cpp - sp-clippath.cpp - sp-conn-end-pair.cpp - sp-conn-end.cpp - sp-cursor.cpp - sp-defs.cpp - sp-desc.cpp - sp-ellipse.cpp - sp-factory.cpp - sp-filter-primitive.cpp - sp-filter-reference.cpp - sp-filter.cpp - sp-flowdiv.cpp - sp-flowregion.cpp - sp-flowtext.cpp - sp-font-face.cpp - sp-font.cpp - sp-glyph-kerning.cpp - sp-glyph.cpp - sp-gradient-reference.cpp - sp-gradient.cpp - sp-guide.cpp - sp-hatch-path.cpp - sp-hatch.cpp - sp-image.cpp - sp-item-group.cpp - sp-item-notify-moveto.cpp - sp-item-rm-unsatisfied-cns.cpp - sp-item-transform.cpp - sp-item-update-cns.cpp - sp-item.cpp - sp-line.cpp - sp-linear-gradient.cpp - sp-lpe-item.cpp - sp-marker.cpp - sp-mask.cpp - sp-mesh-array.cpp - sp-mesh-patch.cpp - sp-mesh-row.cpp - sp-mesh.cpp - sp-metadata.cpp - sp-missing-glyph.cpp - sp-namedview.cpp - sp-object-group.cpp - sp-object.cpp - sp-offset.cpp - sp-paint-server.cpp - sp-path.cpp - sp-pattern.cpp - sp-polygon.cpp - sp-polyline.cpp - sp-radial-gradient.cpp - sp-rect.cpp - sp-root.cpp - sp-script.cpp - sp-shape.cpp - sp-solid-color.cpp - sp-spiral.cpp - sp-star.cpp - sp-stop.cpp - sp-string.cpp - sp-style-elem.cpp - sp-switch.cpp - sp-symbol.cpp - sp-tag-use-reference.cpp - sp-tag-use.cpp - sp-tag.cpp - sp-text.cpp - sp-title.cpp - sp-tref-reference.cpp - sp-tref.cpp - sp-tspan.cpp - sp-use-reference.cpp - sp-use.cpp - splivarot.cpp - viewbox.cpp + attribute-rel-css.cpp + attribute-rel-svg.cpp + attribute-rel-util.cpp + attribute-sort-util.cpp + sp-anchor.cpp + sp-clippath.cpp + sp-conn-end-pair.cpp + sp-conn-end.cpp + sp-cursor.cpp + sp-defs.cpp + sp-desc.cpp + sp-ellipse.cpp + sp-factory.cpp + sp-filter-primitive.cpp + sp-filter-reference.cpp + sp-filter.cpp + sp-flowdiv.cpp + sp-flowregion.cpp + sp-flowtext.cpp + sp-font-face.cpp + sp-font.cpp + sp-glyph-kerning.cpp + sp-glyph.cpp + sp-gradient-reference.cpp + sp-gradient.cpp + sp-guide.cpp + sp-hatch-path.cpp + sp-hatch.cpp + sp-image.cpp + sp-item-group.cpp + sp-item-notify-moveto.cpp + sp-item-rm-unsatisfied-cns.cpp + sp-item-transform.cpp + sp-item-update-cns.cpp + sp-item.cpp + sp-line.cpp + sp-linear-gradient.cpp + sp-lpe-item.cpp + sp-marker.cpp + sp-mask.cpp + sp-mesh-array.cpp + sp-mesh-patch.cpp + sp-mesh-row.cpp + sp-mesh.cpp + sp-metadata.cpp + sp-missing-glyph.cpp + sp-namedview.cpp + sp-object-group.cpp + sp-object.cpp + sp-offset.cpp + sp-paint-server.cpp + sp-path.cpp + sp-pattern.cpp + sp-polygon.cpp + sp-polyline.cpp + sp-radial-gradient.cpp + sp-rect.cpp + sp-root.cpp + sp-script.cpp + sp-shape.cpp + sp-solid-color.cpp + sp-spiral.cpp + sp-star.cpp + sp-stop.cpp + sp-string.cpp + sp-style-elem.cpp + sp-switch.cpp + sp-symbol.cpp + sp-tag-use-reference.cpp + sp-tag-use.cpp + sp-tag.cpp + sp-text.cpp + sp-title.cpp + sp-tref-reference.cpp + sp-tref.cpp + sp-tspan.cpp + sp-use-reference.cpp + sp-use.cpp + splivarot.cpp + viewbox.cpp - # ------- - # Headers - attribute-rel-css.h - attribute-rel-svg.h - attribute-rel-util.h - attribute-sort-util.h - sp-anchor.h - sp-clippath.h - sp-conn-end-pair.h - sp-conn-end.h - sp-cursor.h - sp-defs.h - sp-desc.h - sp-ellipse.h - sp-factory.h - sp-filter-primitive.h - sp-filter-reference.h - sp-filter-units.h - sp-filter.h - sp-flowdiv.h - sp-flowregion.h - sp-flowtext.h - sp-font-face.h - sp-font.h - sp-glyph-kerning.h - sp-glyph.h - sp-gradient-reference.h - sp-gradient-spread.h - sp-gradient-test.h - sp-gradient-units.h - sp-gradient-vector.h - sp-gradient.h - sp-guide-attachment.h - sp-guide-constraint.h - sp-guide.h - sp-hatch-path.h - sp-hatch.h - sp-image.h - sp-item-group.h - sp-item-notify-moveto.h - sp-item-rm-unsatisfied-cns.h - sp-item-transform.h - sp-item-update-cns.h - sp-item.h - sp-line.h - sp-linear-gradient.h - sp-lpe-item.h - sp-marker-loc.h - sp-marker.h - sp-mask.h - sp-mesh-array.h - sp-mesh-patch.h - sp-mesh-row.h - sp-mesh.h - sp-metadata.h - sp-missing-glyph.h - sp-namedview.h - sp-object-group.h - sp-object.h - sp-offset.h - sp-paint-server-reference.h - sp-paint-server.h - sp-path.h - sp-pattern.h - sp-polygon.h - sp-polyline.h - sp-radial-gradient.h - sp-rect.h - sp-root.h - sp-script.h - sp-shape.h - sp-solid-color.h - sp-spiral.h - sp-star.h - sp-stop.h - sp-string.h - sp-style-elem-test.h - sp-style-elem.h - sp-switch.h - sp-symbol.h - sp-tag.h - sp-tag-use.h - sp-tag-use-reference.h - sp-text.h - sp-textpath.h - sp-title.h - sp-tref-reference.h - sp-tref.h - sp-tspan.h - sp-use-reference.h - sp-use.h - viewbox.h + # ------- + # Headers + attribute-rel-css.h + attribute-rel-svg.h + attribute-rel-util.h + attribute-sort-util.h + sp-anchor.h + sp-clippath.h + sp-conn-end-pair.h + sp-conn-end.h + sp-cursor.h + sp-defs.h + sp-desc.h + sp-ellipse.h + sp-factory.h + sp-filter-primitive.h + sp-filter-reference.h + sp-filter-units.h + sp-filter.h + sp-flowdiv.h + sp-flowregion.h + sp-flowtext.h + sp-font-face.h + sp-font.h + sp-glyph-kerning.h + sp-glyph.h + sp-gradient-reference.h + sp-gradient-spread.h + sp-gradient-test.h + sp-gradient-units.h + sp-gradient-vector.h + sp-gradient.h + sp-guide-attachment.h + sp-guide-constraint.h + sp-guide.h + sp-hatch-path.h + sp-hatch.h + sp-image.h + sp-item-group.h + sp-item-notify-moveto.h + sp-item-rm-unsatisfied-cns.h + sp-item-transform.h + sp-item-update-cns.h + sp-item.h + sp-line.h + sp-linear-gradient.h + sp-lpe-item.h + sp-marker-loc.h + sp-marker.h + sp-mask.h + sp-mesh-array.h + sp-mesh-patch.h + sp-mesh-row.h + sp-mesh.h + sp-metadata.h + sp-missing-glyph.h + sp-namedview.h + sp-object-group.h + sp-object.h + sp-offset.h + sp-paint-server-reference.h + sp-paint-server.h + sp-path.h + sp-pattern.h + sp-polygon.h + sp-polyline.h + sp-radial-gradient.h + sp-rect.h + sp-root.h + sp-script.h + sp-shape.h + sp-solid-color.h + sp-spiral.h + sp-star.h + sp-stop.h + sp-string.h + sp-style-elem-test.h + sp-style-elem.h + sp-switch.h + sp-symbol.h + sp-tag.h + sp-tag-use.h + sp-tag-use-reference.h + sp-text.h + sp-textpath.h + sp-title.h + sp-tref-reference.h + sp-tref.h + sp-tspan.h + sp-use-reference.h + sp-use.h + viewbox.h ) set(inkscape_SRC - attributes.cpp - axis-manip.cpp - box3d-side.cpp - box3d.cpp - color-profile.cpp - color.cpp - composite-undo-stack-observer.cpp - conditions.cpp - conn-avoid-ref.cpp - console-output-undo-observer.cpp - context-fns.cpp - desktop-events.cpp - desktop-style.cpp - desktop.cpp - device-manager.cpp - dir-util.cpp - document-subset.cpp - document-undo.cpp - document.cpp - ege-color-prof-tracker.cpp - event-log.cpp - extract-uri.cpp - file.cpp - filter-chemistry.cpp - filter-enums.cpp - gc-anchored.cpp - gc-finalized.cpp - gradient-chemistry.cpp - gradient-drag.cpp - graphlayout.cpp - guide-snapper.cpp - help.cpp - id-clash.cpp - inkscape.cpp - knot-holder-entity.cpp - knot-ptr.cpp - knot.cpp - knotholder.cpp - layer-fns.cpp - layer-manager.cpp - layer-model.cpp - line-geometry.cpp - line-snapper.cpp - main-cmdlineact.cpp - media.cpp - message-context.cpp - message-stack.cpp - mod360.cpp - object-hierarchy.cpp - object-snapper.cpp - path-chemistry.cpp - persp3d-reference.cpp - persp3d.cpp - perspective-line.cpp - preferences.cpp - prefix.cpp - print.cpp - profile-manager.cpp - proj_pt.cpp - pure-transform.cpp - rdf.cpp - removeoverlap.cpp - resource-manager.cpp - rubberband.cpp - satisfied-guide-cns.cpp - selcue.cpp - selection-chemistry.cpp - selection-describer.cpp - selection.cpp - seltrans-handles.cpp - seltrans.cpp - shortcuts.cpp - snap-preferences.cpp - snap.cpp - snapped-curve.cpp - snapped-line.cpp - snapped-point.cpp - snapper.cpp - style-internal.cpp - style.cpp - svg-view-widget.cpp - svg-view.cpp - text-chemistry.cpp - text-editing.cpp - transf_mat_3x4.cpp - unclump.cpp - unicoderange.cpp - uri-references.cpp - uri.cpp - vanishing-point.cpp - verbs.cpp - version.cpp + attributes.cpp + axis-manip.cpp + box3d-side.cpp + box3d.cpp + color-profile.cpp + color.cpp + composite-undo-stack-observer.cpp + conditions.cpp + conn-avoid-ref.cpp + console-output-undo-observer.cpp + context-fns.cpp + desktop-events.cpp + desktop-style.cpp + desktop.cpp + device-manager.cpp + dir-util.cpp + document-subset.cpp + document-undo.cpp + document.cpp + ege-color-prof-tracker.cpp + event-log.cpp + extract-uri.cpp + file.cpp + filter-chemistry.cpp + filter-enums.cpp + gc-anchored.cpp + gc-finalized.cpp + gradient-chemistry.cpp + gradient-drag.cpp + graphlayout.cpp + guide-snapper.cpp + help.cpp + id-clash.cpp + inkscape.cpp + knot-holder-entity.cpp + knot-ptr.cpp + knot.cpp + knotholder.cpp + layer-fns.cpp + layer-manager.cpp + layer-model.cpp + line-geometry.cpp + line-snapper.cpp + main-cmdlineact.cpp + media.cpp + message-context.cpp + message-stack.cpp + mod360.cpp + object-hierarchy.cpp + object-snapper.cpp + path-chemistry.cpp + persp3d-reference.cpp + persp3d.cpp + perspective-line.cpp + preferences.cpp + prefix.cpp + print.cpp + profile-manager.cpp + proj_pt.cpp + pure-transform.cpp + rdf.cpp + removeoverlap.cpp + resource-manager.cpp + rubberband.cpp + satisfied-guide-cns.cpp + selcue.cpp + selection-chemistry.cpp + selection-describer.cpp + selection.cpp + seltrans-handles.cpp + seltrans.cpp + shortcuts.cpp + snap-preferences.cpp + snap.cpp + snapped-curve.cpp + snapped-line.cpp + snapped-point.cpp + snapper.cpp + style-internal.cpp + style.cpp + svg-view-widget.cpp + svg-view.cpp + text-chemistry.cpp + text-editing.cpp + transf_mat_3x4.cpp + unclump.cpp + unicoderange.cpp + uri-references.cpp + uri.cpp + vanishing-point.cpp + verbs.cpp + version.cpp - # ------- - # Headers - MultiPrinter.h - PylogFormatter.h - TRPIFormatter.h - attributes-test.h - attributes.h - axis-manip.h - bad-uri-exception.h - box3d-side.h - box3d.h - cms-color-types.h - cms-system.h - color-profile-cms-fns.h - color-profile-test.h - color-profile.h - color-rgba.h - color.h - colorspace.h - composite-undo-stack-observer.h - conditions.h - conn-avoid-ref.h - console-output-undo-observer.h - context-fns.h - decimal-round.h - desktop-events.h - desktop-style.h - desktop.h - device-manager.h - dir-util-test.h - dir-util.h - document-private.h - document-subset.h - document-undo.h - document.h - ege-color-prof-tracker.h - enums.h - event-log.h - event.h - extract-uri-test.h - extract-uri.h - file.h - fill-or-stroke.h - filter-chemistry.h - filter-enums.h - gc-anchored.h - gc-finalized.h - gradient-chemistry.h - gradient-drag.h - graphlayout.h - guide-snapper.h - help.h - helper-fns.h - icon-size.h - id-clash.h - inkscape-version.h - inkscape.h - isinf.h - knot-enums.h - knot-holder-entity.h - knot-ptr.h - knot.h - knotholder.h - layer-fns.h - layer-manager.h - layer-model.h - line-geometry.h - line-snapper.h - macros.h - main-cmdlineact.h - marker-test.h - media.h - menus-skeleton.h - message-context.h - message-stack.h - message.h - mod360-test.h - mod360.h - number-opt-number.h - object-hierarchy.h - object-snapper.h - object-test.h - path-chemistry.h - path-prefix.h - persp3d-reference.h - persp3d.h - perspective-line.h - preferences-skeleton.h - preferences-test.h - preferences.h - prefix.h - print.h - profile-manager.h - proj_pt.h - pure-transform.h - rdf.h - remove-last.h - removeoverlap.h - require-config.h - resource-manager.h - round-test.h - round.h - rubberband.h - satisfied-guide-cns.h - selcue.h - selection-chemistry.h - selection-describer.h - selection.h - seltrans-handles.h - seltrans.h - shortcuts.h - snap-candidate.h - snap-enums.h - snap-preferences.h - snap.h - snapped-curve.h - snapped-line.h - snapped-point.h - snapper.h - splivarot.h - streq.h - strneq.h - style-enums.h - style-internal.h - style-test.h - style.h - svg-profile.h - svg-view-widget.h - svg-view.h - syseq.h - test-helpers.h - text-chemistry.h - text-editing.h - text-tag-attributes.h - transf_mat_3x4.h - unclump.h - undo-stack-observer.h - unicoderange.h - uri-references.h - uri-test.h - uri.h - vanishing-point.h - verbs-test.h - verbs.h - version.h + # ------- + # Headers + MultiPrinter.h + PylogFormatter.h + TRPIFormatter.h + attributes-test.h + attributes.h + axis-manip.h + bad-uri-exception.h + box3d-side.h + box3d.h + cms-color-types.h + cms-system.h + color-profile-cms-fns.h + color-profile-test.h + color-profile.h + color-rgba.h + color.h + colorspace.h + composite-undo-stack-observer.h + conditions.h + conn-avoid-ref.h + console-output-undo-observer.h + context-fns.h + decimal-round.h + desktop-events.h + desktop-style.h + desktop.h + device-manager.h + dir-util-test.h + dir-util.h + document-private.h + document-subset.h + document-undo.h + document.h + ege-color-prof-tracker.h + enums.h + event-log.h + event.h + extract-uri-test.h + extract-uri.h + file.h + fill-or-stroke.h + filter-chemistry.h + filter-enums.h + gc-anchored.h + gc-finalized.h + gradient-chemistry.h + gradient-drag.h + graphlayout.h + guide-snapper.h + help.h + helper-fns.h + icon-size.h + id-clash.h + inkscape-version.h + inkscape.h + isinf.h + knot-enums.h + knot-holder-entity.h + knot-ptr.h + knot.h + knotholder.h + layer-fns.h + layer-manager.h + layer-model.h + line-geometry.h + line-snapper.h + macros.h + main-cmdlineact.h + marker-test.h + media.h + menus-skeleton.h + message-context.h + message-stack.h + message.h + mod360-test.h + mod360.h + number-opt-number.h + object-hierarchy.h + object-snapper.h + object-test.h + path-chemistry.h + path-prefix.h + persp3d-reference.h + persp3d.h + perspective-line.h + preferences-skeleton.h + preferences-test.h + preferences.h + prefix.h + print.h + profile-manager.h + proj_pt.h + pure-transform.h + rdf.h + remove-last.h + removeoverlap.h + require-config.h + resource-manager.h + round-test.h + round.h + rubberband.h + satisfied-guide-cns.h + selcue.h + selection-chemistry.h + selection-describer.h + selection.h + seltrans-handles.h + seltrans.h + shortcuts.h + snap-candidate.h + snap-enums.h + snap-preferences.h + snap.h + snapped-curve.h + snapped-line.h + snapped-point.h + snapper.h + splivarot.h + streq.h + strneq.h + style-enums.h + style-internal.h + style-test.h + style.h + svg-profile.h + svg-view-widget.h + svg-view.h + syseq.h + test-helpers.h + text-chemistry.h + text-editing.h + text-tag-attributes.h + transf_mat_3x4.h + unclump.h + undo-stack-observer.h + unicoderange.h + uri-references.h + uri-test.h + uri.h + vanishing-point.h + verbs-test.h + verbs.h + version.h ) # ----------------------------------------------------------------------------- @@ -425,19 +425,19 @@ set(inkscape_SRC # a custom target that is always built add_custom_target( - inkscape_version ALL - COMMAND ${CMAKE_COMMAND} - -DINKSCAPE_SOURCE_DIR=${CMAKE_SOURCE_DIR} - -DINKSCAPE_BINARY_DIR=${CMAKE_BINARY_DIR} - -P ${CMAKE_SOURCE_DIR}/CMakeScripts/inkscape-version.cmake) + inkscape_version ALL + COMMAND ${CMAKE_COMMAND} + -DINKSCAPE_SOURCE_DIR=${CMAKE_SOURCE_DIR} + -DINKSCAPE_BINARY_DIR=${CMAKE_BINARY_DIR} + -P ${CMAKE_SOURCE_DIR}/CMakeScripts/inkscape-version.cmake) # buildinfo.h is a generated file set_source_files_properties( - ${CMAKE_BINARY_DIR}/src/inkscape-version.cpp - PROPERTIES GENERATED TRUE) + ${CMAKE_BINARY_DIR}/src/inkscape-version.cpp + PROPERTIES GENERATED TRUE) list(APPEND inkscape_SRC - ${CMAKE_BINARY_DIR}/src/inkscape-version.cpp + ${CMAKE_BINARY_DIR}/src/inkscape-version.cpp ) @@ -477,8 +477,8 @@ add_subdirectory(libdepixelize) get_property(inkscape_global_SRC GLOBAL PROPERTY inkscape_global_SRC) set(inkscape_SRC - ${inkscape_global_SRC} - ${inkscape_SRC} + ${inkscape_global_SRC} + ${inkscape_SRC} ) # ----------------------------------------------------------------------------- @@ -488,23 +488,23 @@ set(inkscape_SRC #add_inkscape_lib(inkscape_LIB "${inkscape_SRC}") if(WIN32) - # Sources for the inkscape executable on Windows. - set(main_SRC - registrytool.h - registrytool.cpp - main.cpp - winmain.cpp - #winconsole.cpp - ) - - # Add the platform specific resource files (enabling the app icon). - if(${HAVE_MINGW64}) - list(APPEND main_SRC inkscape-x64.rc) - else() - list(APPEND main_SRC inkscape.rc) - endif() + # Sources for the inkscape executable on Windows. + set(main_SRC + registrytool.h + registrytool.cpp + main.cpp + winmain.cpp + #winconsole.cpp + ) + + # Add the platform specific resource files (enabling the app icon). + if(${HAVE_MINGW64}) + list(APPEND main_SRC inkscape-x64.rc) + else() + list(APPEND main_SRC inkscape.rc) + endif() else() - set(main_SRC main.cpp) + set(main_SRC main.cpp) endif() # Build everything except main and inkview.c in a shared library. @@ -550,4 +550,15 @@ target_link_libraries(inkscape_base ${INKSCAPE_TARGET_LIBS}) # Link inkscape and inkview against inkscape_base target_link_libraries(inkscape inkscape_base) -target_link_libraries(inkview inkscape_base) \ No newline at end of file +target_link_libraries(inkview inkscape_base) + +if(NOT WIN32) + #Define the installation + install(TARGETS + inkscape_base + inkscape + inkview + RUNTIME DESTINATION bin + LIBRARY DESTINATION lib/inkscape + ARCHIVE DESTINATION lib/inkscape) +endif() -- cgit v1.2.3 From 24ac45b8bad3a477e2af643c36a77d82916a2017 Mon Sep 17 00:00:00 2001 From: Sebastian Faubel Date: Wed, 6 Jul 2016 17:45:34 +0200 Subject: Fixing build for Linux. (bzr r15002.1.8) --- CMakeLists.txt | 5 +++++ CMakeScripts/Install.cmake | 5 +---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 51d665128..910ed4e20 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -165,6 +165,11 @@ endif() # ----------------------------------------------------------------------------- # Installation # ----------------------------------------------------------------------------- +if(NOT WIN32) + # this should probably be done no matter what the platform is, just set SHARE_INSTALL first + add_subdirectory(share) +endif() + include(CMakeScripts/Install.cmake) # ----------------------------------------------------------------------------- diff --git a/CMakeScripts/Install.cmake b/CMakeScripts/Install.cmake index 8306cec16..aee0444de 100644 --- a/CMakeScripts/Install.cmake +++ b/CMakeScripts/Install.cmake @@ -5,10 +5,7 @@ if(UNIX) DESTINATION ${CMAKE_INSTALL_PREFIX}/${SHARE_INSTALL}/applications) endif() -if(NOT WIN32) - # this should probably be done no matter what the platform is, just set SHARE_INSTALL first - add_subdirectory(../share) -else() +if(WIN32) install(PROGRAMS ${EXECUTABLE_OUTPUT_PATH}/inkscape.exe ${EXECUTABLE_OUTPUT_PATH}/inkview.exe -- cgit v1.2.3