aboutsummaryrefslogtreecommitdiff
path: root/tests/poppler/cmake/modules/PopplerMacros.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'tests/poppler/cmake/modules/PopplerMacros.cmake')
-rw-r--r--tests/poppler/cmake/modules/PopplerMacros.cmake142
1 files changed, 142 insertions, 0 deletions
diff --git a/tests/poppler/cmake/modules/PopplerMacros.cmake b/tests/poppler/cmake/modules/PopplerMacros.cmake
new file mode 100644
index 00000000..83b103e7
--- /dev/null
+++ b/tests/poppler/cmake/modules/PopplerMacros.cmake
@@ -0,0 +1,142 @@
+# Copyright 2008 Pino Toscano, <pino@kde.org>
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+
+macro(POPPLER_ADD_TEST exe build_flag)
+ set(build_test ${${build_flag}})
+ if(NOT build_test)
+ set(_add_executable_param ${_add_executable_param} EXCLUDE_FROM_ALL)
+ endif(NOT build_test)
+
+ add_executable(${exe} ${_add_executable_param} ${ARGN})
+
+ # if the tests are EXCLUDE_FROM_ALL, add a target "buildtests" to build all tests
+ if(NOT build_test AND NOT MSVC_IDE)
+ get_directory_property(_buildtestsAdded BUILDTESTS_ADDED)
+ if(NOT _buildtestsAdded)
+ add_custom_target(buildtests)
+ set_directory_properties(PROPERTIES BUILDTESTS_ADDED TRUE)
+ endif(NOT _buildtestsAdded)
+ add_dependencies(buildtests ${exe})
+ endif(NOT build_test AND NOT MSVC_IDE)
+endmacro(POPPLER_ADD_TEST)
+
+macro(POPPLER_ADD_UNITTEST exe build_flag)
+ set(build_test ${${build_flag}})
+ if(NOT build_test)
+ set(_add_executable_param ${_add_executable_param} EXCLUDE_FROM_ALL)
+ endif(NOT build_test)
+
+ add_executable(${exe} ${_add_executable_param} ${ARGN})
+ add_test(${exe} ${EXECUTABLE_OUTPUT_PATH}/${exe})
+
+ # if the tests are EXCLUDE_FROM_ALL, add a target "buildtests" to build all tests
+ if(NOT build_test)
+ get_directory_property(_buildtestsAdded BUILDTESTS_ADDED)
+ if(NOT _buildtestsAdded)
+ add_custom_target(buildtests)
+ set_directory_properties(PROPERTIES BUILDTESTS_ADDED TRUE)
+ endif(NOT _buildtestsAdded)
+ add_dependencies(buildtests ${exe})
+ endif(NOT build_test)
+endmacro(POPPLER_ADD_UNITTEST)
+
+macro(POPPLER_CREATE_INSTALL_PKGCONFIG generated_file install_location)
+ if(NOT WIN32)
+ configure_file(${generated_file}.cmake ${CMAKE_CURRENT_BINARY_DIR}/${generated_file} @ONLY)
+ install(FILES ${CMAKE_CURRENT_BINARY_DIR}/${generated_file} DESTINATION ${install_location})
+ endif(NOT WIN32)
+endmacro(POPPLER_CREATE_INSTALL_PKGCONFIG)
+
+macro(SHOW_END_MESSAGE what value)
+ string(LENGTH ${what} length_what)
+ math(EXPR left_char "20 - ${length_what}")
+ set(blanks)
+ foreach(_i RANGE 1 ${left_char})
+ set(blanks "${blanks} ")
+ endforeach(_i)
+
+ message(" ${what}:${blanks} ${value}")
+endmacro(SHOW_END_MESSAGE)
+
+macro(SHOW_END_MESSAGE_YESNO what enabled)
+ if(${enabled})
+ set(enabled_string "yes")
+ else(${enabled})
+ set(enabled_string "no")
+ endif(${enabled})
+
+ show_end_message("${what}" "${enabled_string}")
+endmacro(SHOW_END_MESSAGE_YESNO)
+
+macro(POPPLER_CHECK_LINK_FLAG flag var)
+ set(_save_CMAKE_REQUIRED_LIBRARIES "${CMAKE_REQUIRED_LIBRARIES}")
+ include(CheckCXXSourceCompiles)
+ set(CMAKE_REQUIRED_LIBRARIES "${flag}")
+ check_cxx_source_compiles("int main() { return 0; }" ${var})
+ set(CMAKE_REQUIRED_LIBRARIES "${_save_CMAKE_REQUIRED_LIBRARIES}")
+endmacro(POPPLER_CHECK_LINK_FLAG)
+
+
+set(CMAKE_SYSTEM_INCLUDE_PATH ${CMAKE_SYSTEM_INCLUDE_PATH}
+ "${CMAKE_INSTALL_PREFIX}/include" )
+
+set(CMAKE_SYSTEM_PROGRAM_PATH ${CMAKE_SYSTEM_PROGRAM_PATH}
+ "${CMAKE_INSTALL_PREFIX}/bin" )
+
+set(CMAKE_SYSTEM_LIBRARY_PATH ${CMAKE_SYSTEM_LIBRARY_PATH}
+ "${CMAKE_INSTALL_PREFIX}/lib" )
+
+# under Windows dlls may be also installed in bin/
+if(WIN32)
+ set(CMAKE_SYSTEM_LIBRARY_PATH ${CMAKE_SYSTEM_LIBRARY_PATH}
+ "${CMAKE_INSTALL_PREFIX}/bin" )
+endif(WIN32)
+
+if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
+ set(CMAKE_BUILD_TYPE RelWithDebInfo)
+endif(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
+
+if(CMAKE_COMPILER_IS_GNUCXX)
+ # set the default compile warnings
+ set(DEFAULT_COMPILE_WARNINGS_NO)
+ set(DEFAULT_COMPILE_WARNINGS_YES "-Wall -Wno-write-strings -Wcast-align -fno-exceptions -fno-check-new -fno-common")
+ set(DEFAULT_COMPILE_WARNINGS_KDE "-Wno-long-long -Wundef -D_XOPEN_SOURCE=600 -D_BSD_SOURCE -Wcast-align -Wconversion -Wall -W -Wpointer-arith -Wwrite-strings -Wformat-security -Wmissing-format-attribute -fno-exceptions -fno-check-new -fno-common")
+
+ set(CMAKE_CXX_FLAGS "-Wnon-virtual-dtor -Woverloaded-virtual ${CMAKE_CXX_FLAGS}")
+ set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")
+ set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")
+ set(CMAKE_CXX_FLAGS_DEBUG "-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline")
+ set(CMAKE_CXX_FLAGS_DEBUGFULL "-g3 -fno-inline")
+ set(CMAKE_CXX_FLAGS_PROFILE "-g3 -fno-inline -ftest-coverage -fprofile-arcs")
+ set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g")
+ set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG")
+ set(CMAKE_C_FLAGS_DEBUG "-g -O2 -fno-reorder-blocks -fno-schedule-insns -fno-inline")
+ set(CMAKE_C_FLAGS_DEBUGFULL "-g3 -fno-inline")
+ set(CMAKE_C_FLAGS_PROFILE "-g3 -fno-inline -ftest-coverage -fprofile-arcs")
+
+ if(CMAKE_SYSTEM_NAME MATCHES Linux)
+ set(DEFAULT_COMPILE_WARNINGS_YES "${DEFAULT_COMPILE_WARNINGS_YES} -ansi")
+ set(DEFAULT_COMPILE_WARNINGS_KDE "${DEFAULT_COMPILE_WARNINGS_KDE} -ansi")
+ endif(CMAKE_SYSTEM_NAME MATCHES Linux)
+
+ poppler_check_link_flag("-Wl,--as-needed" GCC_HAS_AS_NEEDED)
+ if(GCC_HAS_AS_NEEDED)
+ set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--as-needed")
+ set(CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--as-needed")
+ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed")
+ endif(GCC_HAS_AS_NEEDED)
+endif (CMAKE_COMPILER_IS_GNUCXX)
+
+if(CMAKE_C_COMPILER MATCHES "icc")
+ set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "-O2 -g")
+ set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")
+ set(CMAKE_CXX_FLAGS_DEBUG "-O2 -g -0b0 -noalign")
+ set(CMAKE_CXX_FLAGS_DEBUGFULL "-g -Ob0 -noalign")
+ set(CMAKE_C_FLAGS_RELWITHDEBINFO "-O2 -g")
+ set(CMAKE_C_FLAGS_RELEASE "-O2 -DNDEBUG")
+ set(CMAKE_C_FLAGS_DEBUG "-O2 -g -Ob0 -noalign")
+ set(CMAKE_C_FLAGS_DEBUGFULL "-g -Ob0 -noalign")
+endif(CMAKE_C_COMPILER MATCHES "icc")
+