From fec6336699f34758d3e6cb41b2edf902fedb9035 Mon Sep 17 00:00:00 2001 From: Lorry Tar Creator Date: Sat, 4 May 2013 21:39:27 +0000 Subject: libical-1.0 --- CMakeLists.txt | 114 ++++++++++++++++++++++++++++++++++++++++++++------------- 1 file changed, 88 insertions(+), 26 deletions(-) (limited to 'CMakeLists.txt') diff --git a/CMakeLists.txt b/CMakeLists.txt index 62ed129..f740ac5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -3,14 +3,18 @@ # Pass the following variables to cmake to control the build: # (See doc/UsingLibical.txt for more information) # -# -DICAL_ERRORS_ARE_FATAL=[true|false] +# -DICAL_ERRORS_ARE_FATAL=[true|false] # Set to make icalerror_* calls abort instead of internally signaling an error -# Default=true +# Default=false # # -DNO_WARN_DEPRECATED=[true|false] # Set if you DO NOT WANT to see deprecated messages. # Default=true # +# -DICAL_ALLOW_EMPTY_PROPERTIES=[true|false] +# Set to prevent empty properties from being replaced with X-LIC-ERROR properties. +# Default=false +# # -DICAL_UNIX_NEWLINE=[true|false] # Set to terminate each line with the RFC2445 specified line terminator "\\n"; # else it will terminate lines with "\\n\\r" @@ -20,33 +24,72 @@ # Set to build using our own timezone data. # Default=false (use the system timezone data) # +# -DSTATIC_LIBRARY=[true|false] +# Set to build static libraries only. +# Default=false (build shared and static libs) +# +# -DGOBJECT_INTROSPECTION=[true|false] +# Set to build GObject introspection "typelib" files +# Requires GObject Introspection development package v0.6.7 or higher +# Default=false (do not generate the introspection files) +# +# -DUSE_32BIT_TIME_T=[true|false] +# Set to build using a 32bit time_t (ignored unless building with MSVC on Windows) +# Default=false (use the default size of time_t) +# project(libical) cmake_minimum_required(VERSION 2.4) -#cannot use the following line with cmake 2.4.x -#cmake_policy(VERSION 2.6) +if(COMMAND cmake_policy) + cmake_policy(SET CMP0003 NEW) + cmake_policy(SET CMP0005 OLD) +endif(COMMAND cmake_policy) + +set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules) -set(LIBICAL_LIB_MAJOR_VERSION "0") -set(LIBICAL_LIB_MINOR_VERSION "43") +enable_testing() + +if(WINCE) + find_package(Wcecompat REQUIRED) + include_directories(${WCECOMPAT_INCLUDE_DIR}) + set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${WCECOMPAT_INCLUDE_DIR}) + set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${WCECOMPAT_LIBRARIES}) +endif(WINCE) + +set(LIBICAL_LIB_MAJOR_VERSION "1") +set(LIBICAL_LIB_MINOR_VERSION "0") set(LIBICAL_LIB_PATCH_VERSION "0") -set(LIBICAL_LIB_VERSION_STRING "${LIBICAL_LIB_MAJOR_VERSION}.${LIBICAL_LIB_MINOR_VERSION}.${LIBICAL_LIB_PATCH_VERSION}") +set(LIBICAL_LIB_VERSION_STRING + "${LIBICAL_LIB_MAJOR_VERSION}.${LIBICAL_LIB_MINOR_VERSION}.${LIBICAL_LIB_PATCH_VERSION}" +) set(PROJECT_VERSION "${LIBICAL_LIB_MAJOR_VERSION}.${LIBICAL_LIB_MINOR_VERSION}") set(PROJECT_URL "http://freeassociation.sf.net/") +if(STATIC_LIBRARY) + set(LIBICAL_STATIC 1) + add_definitions(-DLIBICAL_STATIC) + set(LIBRARY_TYPE STATIC) +else(STATIC_LIBRARY) + set(LIBRARY_TYPE SHARED) +endif(STATIC_LIBRARY) + # must have Perl to create the derived stuff find_package(Perl REQUIRED) -# make msvc less verbose +# MSVC specific definitions if(WIN32) if(MSVC) - add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE) + add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -DYY_NO_UNISTD_H) + if(USE_32BIT_TIME_T) + add_definitions(-D_USE_32BIT_TIME_T) + endif(USE_32BIT_TIME_T) endif(MSVC) add_definitions(-DBIG_ENDIAN=0 -DLITTLE_ENDIAN=1 -DBYTE_ORDER=BIG_ENDIAN) endif(WIN32) -set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)" ) +set(LIB_SUFFIX "" CACHE STRING "Define suffix of directory name (32/64)") set(LIB_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}" CACHE STRING "Library directory name" FORCE) set(INCLUDE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/include" CACHE STRING "Include directory name" FORCE) set(SHARE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share" CACHE STRING "Share directory name" FORCE) @@ -54,19 +97,19 @@ set(SHARE_INSTALL_DIR "${CMAKE_INSTALL_PREFIX}/share" CACHE STRING "Share direct # set the output paths set(EXECUTABLE_OUTPUT_PATH ${CMAKE_BINARY_DIR}/bin) if(WIN32) - set(LIBRARY_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH} ) + set(LIBRARY_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH}) set(LIB_INSTALL_DIR lib) set(BIN_INSTALL_DIR bin) else(WIN32) - set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib ) + set(LIBRARY_OUTPUT_PATH ${CMAKE_BINARY_DIR}/lib) endif(WIN32) -IF(APPLE) +if(APPLE) set(CMAKE_INSTALL_NAME_DIR ${LIB_DESTINATION}) -ENDIF(APPLE) +endif(APPLE) if(NOT DEFINED ICAL_ERRORS_ARE_FATAL) - set(ICAL_ERRORS_ARE_FATAL 1) + set(ICAL_ERRORS_ARE_FATAL 0) else(NOT DEFINED ICAL_ERRORS_ARE_FATAL) if(ICAL_ERRORS_ARE_FATAL) set(ICAL_ERRORS_ARE_FATAL 1) @@ -85,6 +128,16 @@ else(NOT DEFINED ICAL_UNIX_NEWLINE) endif(ICAL_UNIX_NEWLINE) endif(NOT DEFINED ICAL_UNIX_NEWLINE) +if(NOT DEFINED ICAL_ALLOW_EMPTY_PROPERTIES) + set(ICAL_ALLOW_EMPTY_PROPERTIES 0) +else(NOT DEFINED ICAL_ALLOW_EMPTY_PROPERTIES) + if(ICAL_ALLOW_EMPTY_PROPERTIES) + set(ICAL_ALLOW_EMPTY_PROPERTIES 1) + else(ICAL_ALLOW_EMPTY_PROPERTIES) + set(ICAL_ALLOW_EMPTY_PROPERTIES 0) + endif(ICAL_ALLOW_EMPTY_PROPERTIES) +endif(NOT DEFINED ICAL_ALLOW_EMPTY_PROPERTIES) + if(NOT DEFINED NO_WARN_DEPRECATED) set(NO_WARN_DEPRECATED 1) else(NOT DEFINED NO_WARN_DEPRECATED) @@ -115,7 +168,17 @@ set(INSTALL_TARGETS_DEFAULT_ARGS ARCHIVE DESTINATION ${LIB_INSTALL_DIR} ) -################# build targets ######################## +if(GOBJECT_INTROSPECTION) + set(MIN_GOBJECT_INTROSPECTION "0.6.7") + find_package(GObjectIntrospection ${MIN_GOBJECT_INTROSPECTION}) + if(INTROSPECTION_FOUND) + set(HAVE_INTROSPECTION TRUE) + else(INTROSPECTION_FOUND) + message(FATAL_ERROR "You requested to build with GObject Introspection but the necessary development package is missing or too low a version (version ${MIN_GOBJECT_INTROSPECTION} or higher is required)") + endif(INTROSPECTION_FOUND) +endif(GOBJECT_INTROSPECTION) + +################# build subdirs ######################## add_subdirectory(design-data) add_subdirectory(doc) @@ -128,15 +191,14 @@ if(USE_BUILTIN_TZDATA) add_subdirectory(zoneinfo) endif(USE_BUILTIN_TZDATA) -############# install stuff ###################### +########### create and install pkg-config file ######### +set(VERSION "${PROJECT_VERSION}") +set(prefix "${CMAKE_INSTALL_PREFIX}") +set(exec_prefix "\${prefix}") +set(libdir "\${exec_prefix}/lib") +set(includedir "\${prefix}/include") +set(PTHREAD_LIBS "${CMAKE_THREAD_LIBS_INIT}") -if(NOT WIN32) # pkgconfig file - set(VERSION "${PROJECT_VERSION}") - set(prefix "${CMAKE_INSTALL_PREFIX}") - set(exec_prefix "\${prefix}") - set(libdir "\${exec_prefix}/lib") - set(includedir "\${prefix}/include") - configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libical.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libical.pc @ONLY) - install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libical.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) -endif(NOT WIN32) +configure_file(${CMAKE_CURRENT_SOURCE_DIR}/libical.pc.in ${CMAKE_CURRENT_BINARY_DIR}/libical.pc @ONLY) +install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libical.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) -- cgit v1.2.1