diff options
Diffstat (limited to 'Build/source/libs/xpdf/xpdf-src/cmake-config.txt')
-rw-r--r-- | Build/source/libs/xpdf/xpdf-src/cmake-config.txt | 290 |
1 files changed, 290 insertions, 0 deletions
diff --git a/Build/source/libs/xpdf/xpdf-src/cmake-config.txt b/Build/source/libs/xpdf/xpdf-src/cmake-config.txt new file mode 100644 index 00000000000..cbd7b9cd3e3 --- /dev/null +++ b/Build/source/libs/xpdf/xpdf-src/cmake-config.txt @@ -0,0 +1,290 @@ +#======================================================================== +# +# cmake-config.txt +# +# CMake script to do misc cmake config and platform-specific config. +# +# Copyright 2015 Glyph & Cog, LLC +# +#======================================================================== + +include(CheckFunctionExists) +include(CheckCXXSourceCompiles) + +enable_language(CXX) + +#--- set default C/C++ compiler flags for Unix +# and add a 'Profiling' build mode +if (CMAKE_GENERATOR STREQUAL "Unix Makefiles") + if (CYGWIN) + set(PIC_FLAG "") + else () + set(PIC_FLAG "-fPIC") + endif () + set(CMAKE_C_FLAGS_DEBUG "-g -O -Wall ${PIC_FLAG}") + set(CMAKE_CXX_FLAGS_DEBUG "-g -O -Wall ${PIC_FLAG}") + set(CMAKE_EXE_LINKER_FLAGS_DEBUG "-g -O -Wall ${PIC_FLAG}") + set(CMAKE_C_FLAGS_RELEASE "-O3 -Wall ${PIC_FLAG}") + set(CMAKE_CXX_FLAGS_RELEASE "-O3 -Wall ${PIC_FLAG}") + set(CMAKE_EXE_LINKER_FLAGS_RELEASE "-O2 -Wall ${PIC_FLAG}") + set(CMAKE_C_FLAGS_PROFILING "-g -pg -O -Wall ${PIC_FLAG}" + CACHE STRING "C compiler flags for profiling mode") + set(CMAKE_CXX_FLAGS_PROFILING "-g -pg -O -Wall ${PIC_FLAG}" + CACHE STRING "C++ compiler flags for profiling mode") + set(CMAKE_EXE_LINKER_FLAGS_PROFILING "-g -pg -O -Wall ${PIC_FLAG}" + CACHE STRING "linker flags for profiling mode") + mark_as_advanced( + CMAKE_C_FLAGS_PROFILING + CMAKE_CXX_FLAGS_PROFILING + CMAKE_EXE_LINKER_FLAGS_PROFILING) + set(CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}" CACHE STRING + "Choose build mode - options are: None Debug Release RelWithDebInfo MinSiz +eRel Profiling") +endif () + +#--- set default C/C++ compiler flags for Windows +if (WIN32) + foreach (var CMAKE_C_FLAGS_DEBUG CMAKE_CXX_FLAGS_DEBUG + CMAKE_C_FLAGS_RELEASE CMAKE_CXX_FLAGS_RELEASE + CMAKE_C_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_MINSIZEREL + CMAKE_C_FLAGS_RELWITHDEBINFO CMAKE_CXX_FLAGS_RELWITHDEBINFO) + # note: this converts /MD to /MT and /MDd to /MTd + string(REGEX REPLACE "/MD" "/MT" ${var} "${${var}}") + endforeach () + set(CMAKE_EXE_LINKER_FLAGS_DEBUG "/NODEFAULTLIB:libcmt ${CMAKE_EXE_LINKER_FLAGS_DEBUG}") + set(CMAKE_SHARED_LINKER_FLAGS_DEBUG "/NODEFAULTLIB:libcmt ${CMAKE_SHARED_LINKER_FLAGS_DEBUG}") + foreach (var CMAKE_C_FLAGS_DEBUG + CMAKE_C_FLAGS_RELEASE + CMAKE_C_FLAGS_MINSIZEREL + CMAKE_C_FLAGS_RELWITHDEBINFO) + set(${var} "${${var}} /D_CRT_SECURE_NO_WARNINGS /wd4290 /wd4996") + endforeach () + foreach (var CMAKE_CXX_FLAGS_DEBUG + CMAKE_CXX_FLAGS_RELEASE + CMAKE_CXX_FLAGS_MINSIZEREL + CMAKE_CXX_FLAGS_RELWITHDEBINFO) + set(${var} "${${var}} /D_CRT_SECURE_NO_WARNINGS /wd4290 /wd4996 /EHsc") + endforeach () +endif () + +#--- don't set an rpath +set(CMAKE_SKIP_RPATH FALSE) + +#--- miscellaneous options +option(A4_PAPER "use A4 (instead of Letter) paper size by default for PostScript output" OFF) +option(NO_TEXT_SELECT "do not allow text selection" OFF) +option(OPI_SUPPORT "include support for OPI comments" OFF) +option(MULTITHREADED "include support for multithreading" ON) +option(USE_EXCEPTIONS "use C++ exceptions" ON) +option(USE_FIXEDPOINT "use fixed point (instead of floating point) arithmetic" OFF) +option(SPLASH_CMYK "include support for CMYK rasterization" OFF) +option(SPLASH_DEVICEN "include support for DeviceN rasterization" OFF) +if (SPLASH_DEVICEN) + set(SPLASH_CMYK ON) +endif () +option(USE_LCMS "enable color management using lcms2" OFF) +option(HIGHLIGHTED_REGIONS "include support for highlighted regions" OFF) +option(SYSTEM_XPDFRC "full path for system-wide xpdfrc file" "") +if (SYSTEM_XPDFRC) + set(SYSTEM_XPDFRC_DEFINE "#define SYSTEM_XPDFRC \"${SYSTEM_XPDFRC}\"") +else () + set(SYSTEM_XPDFRC_DEFINE "/* #undef SYSTEM_XPDFRC */") +endif () +option(XPDFWIDGET_PRINTING "include printing support in XpdfWidget" OFF) +option(EVAL_MODE "enable evaluation mode" OFF) +option(BUILDING_XPDFREADER "enable closed source XpdfReader build" OFF) + +#--- check for various library functions +check_function_exists(mkstemp HAVE_MKSTEMP) +check_function_exists(mkstemps HAVE_MKSTEMPS) +check_function_exists(popen HAVE_POPEN) +check_cxx_source_compiles( + "#include <algorithm> + bool cmp(const int &x, const int &y) { return x < y; } + int a[100]; + int main() { std::sort(a, a+100, &cmp); }" + HAVE_STD_SORT) + +#--- set up 64-bit file seeks +check_function_exists(fseeko HAVE_FSEEKO) +check_function_exists(fseek64 HAVE_FSEEK64) +check_function_exists(_fseeki64 HAVE_FSEEKI64) + +#--- look for FreeType +# This could use cmake's FindFreetype, except that it would require +# a newer version of cmake -- because FreeType changed their include +# paths around. Older versions of FreeType require two separate +# -I switches (typically ..../include and ..../include/freetype2); +# while newer versions require just one (typically ..../include/freetype2) +find_path(FREETYPE_INCLUDE_DIR_ft2build ft2build.h + HINTS + ${FREETYPE_DIR} + PATHS + /usr/local/include + /usr/local/X11R6/include + /usr/local/X11/include + /usr/freeware/include + PATH_SUFFIXES freetype2 include/freetype2 include +) +find_path(FREETYPE_INCLUDE_DIR_freetype freetype.h + HINTS + ${FREETYPE_DIR} + PATHS + /usr/local/include + /usr/local/X11R6/include + /usr/local/X11/include + /usr/freeware/include + PATH_SUFFIXES freetype2 include/freetype2 include +) +find_path(FREETYPE_INCLUDE_DIR_freetype_freetype freetype/freetype.h + HINTS + ${FREETYPE_DIR} + PATHS + /usr/local/include + /usr/local/X11R6/include + /usr/local/X11/include + /usr/freeware/include + PATH_SUFFIXES freetype2 include/freetype2 include +) +find_library(FREETYPE_LIBRARY + NAMES freetype libfreetype freetype2 freetype219 + HINTS + ${FREETYPE_DIR} + PATH_SUFFIXES lib64 lib + PATHS + /usr/local + /usr/local/X11R6 + /usr/local/X11 + /usr/freeware +) +if (FREETYPE_INCLUDE_DIR_ft2build + AND FREETYPE_INCLUDE_DIR_freetype + AND (FREETYPE_INCLUDE_DIR_ft2build STREQUAL FREETYPE_INCLUDE_DIR_freetype) + AND FREETYPE_LIBRARY) + set(FREETYPE_INCLUDE_DIRS "${FREETYPE_INCLUDE_DIR_ft2build}") + set(HAVE_FREETYPE_H TRUE) + message(STATUS "Found FreeType (new-style includes): ${FREETYPE_LIBRARY}") +elseif (FREETYPE_INCLUDE_DIR_ft2build + AND FREETYPE_INCLUDE_DIR_freetype_freetype + AND FREETYPE_LIBRARY) + set(FREETYPE_INCLUDE_DIRS + "${FREETYPE_INCLUDE_DIR_ft2build};${FREETYPE_INCLUDE_DIR_freetype_freetype}") + set(HAVE_FREETYPE_H TRUE) + message(STATUS "Found FreeType (old-style includes): ${FREETYPE_LIBRARY}") +else () + message(STATUS "FreeType not found") +endif () +if (HAVE_FREETYPE_H) + set(HAVE_SPLASH TRUE) +endif () + +#--- look for D-Type +if (DTYPE_INCLUDE_DIR AND DTYPE_LIBRARY) + set(HAVE_DTYPE4_H TRUE) + message(STATUS "Found D-Type: ${DTYPE_LIBRARY}") +endif () + +#--- look for zlib +find_package(ZLIB) + +#--- look for libpng +find_package(PNG) + +#--- look for libjpeg +find_package(JPEG) + +#--- look for libtiff +find_package(TIFF) + +#--- look for lcms2 +if (USE_LCMS) + find_path(LCMS_INCLUDE_DIR lcms2.h + HINTS + ${LCMS_DIR} + PATHS + /usr/local/include + /usr/freeware/include + PATH_SUFFIXES include + ) + find_library(LCMS_LIBRARY + NAMES lcms2 liblcms2 + HINTS + ${LCMS_DIR} + PATHS + /usr/local + /usr/freeware + ) +endif () +if (USE_LCMS AND LCMS_INCLUDE_DIR AND LCMS_LIBRARY) + set(HAVE_LCMS TRUE) + message(STATUS "Found lcms2: ${LCMS_LIBRARY}") +else () + set(HAVE_LCMS FALSE) + message(STATUS "lcms2 not found") +endif () + +#--- look for Qt +find_package(Qt5Widgets QUIET) +if (Qt5Widgets_FOUND) + find_package(Qt5PrintSupport) +else () + find_package(Qt4) +endif () +if(Qt5Widgets_FOUND) + message(STATUS "Qt5 found") + if (XPDFWIDGET_PRINTING) + set(QT_INCLUDES "${Qt5Widgets_INCLUDE_DIRS} ${Qt5PrintSupport_INCLUDE_DIRS}") + set(QT_DEFINITIONS "${Qt5Widgets_DEFINITIONS} ${Qt5PrintSupport_DEFINITIONS}") + if (APPLE) + set(QT_LIBRARIES Qt5::Widgets Qt5::PrintSupport "-framework ApplicationServices") + elseif (UNIX) + set(QT_LIBRARIES Qt5::Widgets Qt5::PrintSupport cups) + else () + set(QT_LIBRARIES Qt5::Widgets Qt5::PrintSupport) + endif () + else () + set(QT_INCLUDES "${Qt5Widgets_INCLUDE_DIRS}") + set(QT_DEFINITIONS "${Qt5Widgets_DEFINITIONS}") + set(QT_LIBRARIES Qt5::Widgets) + endif () + if (XPDFWIDGET_PRINTING) + if (APPLE) + set(EXTRA_QT_LIBRARIES "-framework ApplicationServices") + elseif (UNIX) + set(EXTRA_QT_LIBRARIES cups) + else () + set(EXTRA_QT_LIBRARIES "") + endif () + endif () + # remove "-fPIE" here because we added "-fPIC" above + string(REPLACE "-fPIE" "" QT_CFLAGS "${Qt5Widgets_EXECUTABLE_COMPILE_FLAGS}") + if (POLICY CMP0020) + # do not link to qtmain.lib + cmake_policy(SET CMP0020 OLD) + endif () +elseif(QT4_FOUND) + message(STATUS "Qt4 found") + if (XPDFWIDGET_PRINTING) + if (APPLE) + set(EXTRA_QT_LIBRARIES "-framework ApplicationServices") + elseif (UNIX) + set(EXTRA_QT_LIBRARIES cups) + else () + set(EXTRA_QT_LIBRARIES "") + endif () + endif () +else() + message(STATUS "No Qt library found") +endif() + +#--- look for libpaper +find_library(HAVE_PAPER_H + NAMES paper libpaper + PATH_SUFFIXES lib64 lib +) + +#--- look for pthreads +find_package(Threads) + +#--- create aconf.h +configure_file("aconf.h.in" "aconf.h") |