blob: 7a8e7a48735fa86f4e34becd8fe73766b8711499 [file] [log] [blame]
lahiker426b8d74e2011-03-10 19:12:35 +00001cmake_minimum_required(VERSION 2.8)
2project(protobuf-c)
3set(PROTOBUF_C_VERSION_MAJOR 0)
4set(PROTOBUF_C_VERSION_MINOR 14)
5set(PROTOBUF_C_VERSION_PATCH 1)
6set(PROTOBUF_C_VERSION ${PROTOBUF_C_VERSION_MAJOR}.${PROTOBUF_C_VERSION_MINOR})
7
8set(CMAKE_ROOT_OUTPUT_DIRECTORY
9 ${CMAKE_BINARY_DIR}/${PROJECT_NAME}-${CMAKE_SYSTEM}
10 CACHE PATH "root output directory in which to locate target files")
11
12set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_ROOT_OUTPUT_DIRECTORY}/bin
13 CACHE PATH "output directory in which to build runtime target files")
14set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_ROOT_OUTPUT_DIRECTORY}/lib
15 CACHE PATH "output directory in which to build library target files")
16set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_ROOT_OUTPUT_DIRECTORY}/lib
17 CACHE PATH "output directory in which to build archive target files")
18
19function(process_libprotobuf_c_pc)
20 set(prefix ${PROTOBUF_C_INSTALL_PREFIX})
21 set(exec_prefix ${PROTOBUF_C_INSTALL_EXEC_PREFIX})
22 set(libdir ${PROTOBUF_C_INSTALL_LIBDIR})
23 set(includedir ${PROTOBUF_C_INSTALL_INCLUDEDIR})
24 set(VERSION ${PROTOBUF_C_VERSION})
25 configure_file(libprotobuf-c.pc.in
26 ${CMAKE_ROOT_OUTPUT_DIRECTORY}/pkgconfig/libprotobuf-c.pc @ONLY)
27 install(DIRECTORY ${CMAKE_ROOT_OUTPUT_DIRECTORY}/pkgconfig DESTINATION
28 ${PROTOBUF_C_INSTALL_LIBDIR})
29endfunction()
30
31set(PROTOBUF_C_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}
32 CACHE PATH "install location for architecture-independent files")
33set(PROTOBUF_C_INSTALL_EXEC_PREFIX ${CMAKE_INSTALL_PREFIX}
34 CACHE PATH "install location for architecture-dependent files")
35if ( UNIX )
36 set(PROTOBUF_C_INSTALL_BINDIR ${PROTOBUF_C_INSTALL_EXEC_PREFIX}/bin
37 CACHE PATH "install location for executable files")
38 set(PROTOBUF_C_INSTALL_LIBDIR ${PROTOBUF_C_INSTALL_EXEC_PREFIX}/lib
39 CACHE PATH "install location for object code libraries")
40 set(PROTOBUF_C_INSTALL_INCLUDEDIR ${PROTOBUF_C_INSTALL_PREFIX}/include
41 CACHE PATH "install location for public header files")
42 process_libprotobuf_c_pc()
43else()
44 set(PROTOBUF_C_INSTALL_BINDIR bin
45 CACHE PATH "install location for executable files")
46 set(PROTOBUF_C_INSTALL_LIBDIR lib
47 CACHE PATH "install location for object code libraries")
48 set(PROTOBUF_C_INSTALL_INCLUDEDIR include
49 CACHE PATH "install location for public header files")
50endif()
51
52enable_testing()
53add_subdirectory(src)
54
55# Use "make package" or something like that to create a protobuf-c package.
56set(CPACK_PACKAGE_CONTACT "David Benson <daveb@ffem.org>")
57set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "C bindings for protocol-buffers")
58set(CPACK_PACKAGE_DESCRIPTION_FILE "${CMAKE_CURRENT_SOURCE_DIR}/README")
59set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE")
60set(CPACK_PACKAGE_VERSION_MAJOR "${PROTOBUF_C_VERSION_MAJOR}")
61set(CPACK_PACKAGE_VERSION_MINOR "${PROTOBUF_C_VERSION_MINOR}")
62set(CPACK_PACKAGE_VERSION_PATCH "${PROTOBUF_C_VERSION_PATCH}")
63
64if ( WIN32 )
65 set(CPACK_GENERATOR ZIP)
66else()
67 # Look at http://public.kitware.com/Bug/view.php?id=7000
68 set(CPACK_SET_DESTDIR "ON")
69
70 set(CPACK_GENERATOR DEB)
71 set(CPACK_DEBIAN_PACKAGE_SECTION "libs")
72 set(CPACK_DEBIAN_PACKAGE_PRIORITY "low")
73 set(CPACK_DEBIAN_PACKAGE_HOMEPAGE "http://code.google.com/p/protobuf-c")
74endif()
75include(CPack)
76