22 set(TEST_USER "test@jabber.org" CACHE STRING "Testing: Your jabber account name") |
22 set(TEST_USER "test@jabber.org" CACHE STRING "Testing: Your jabber account name") |
23 set(TEST_PASSWORD "greatsecret" CACHE STRING "Testing: Password for your jabber account") |
23 set(TEST_PASSWORD "greatsecret" CACHE STRING "Testing: Password for your jabber account") |
24 set(TEST_TO "test@jabber.org/mcabber" CACHE STRING "Testing: Target jabber entity") |
24 set(TEST_TO "test@jabber.org/mcabber" CACHE STRING "Testing: Target jabber entity") |
25 set(TEST_FINGERPRINT "00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff" CACHE STRING "Testing: Your jabber server SSL fingerprint") |
25 set(TEST_FINGERPRINT "00:11:22:33:44:55:66:77:88:99:aa:bb:cc:dd:ee:ff" CACHE STRING "Testing: Your jabber server SSL fingerprint") |
26 |
26 |
|
27 ## Gather information about system |
|
28 find_package(Lua51 REQUIRED) |
|
29 find_program(LUA_EXECUTABLE lua lua5.1 luanoreadline) |
|
30 if(LUA_EXECUTABLE) |
|
31 execute_process(COMMAND ${LUA_EXECUTABLE} -e "print ( package.path )" OUTPUT_VARIABLE LUA_PATH OUTPUT_STRIP_TRAILING_WHITESPACE) |
|
32 execute_process(COMMAND ${LUA_EXECUTABLE} -e "print ( package.cpath )" OUTPUT_VARIABLE LUA_CPATH OUTPUT_STRIP_TRAILING_WHITESPACE) |
|
33 endif() |
|
34 find_package(PkgConfig REQUIRED) |
|
35 pkg_check_modules(GLIB REQUIRED glib-2.0) |
|
36 pkg_check_modules(LM REQUIRED loudmouth-1.0) |
|
37 include(CheckFunctionExists) |
|
38 set(CMAKE_REQUIRED_INCLUDES ${LM_INCLUDE_DIRS}) |
|
39 set(CMAKE_REQUIRED_LIBRARIES ${LM_LIBRARIES}) |
|
40 set(CMAKE_REQUIRED_FLAGS ${LM_LDFLAGS} ${LM_CFLAGS}) |
|
41 check_function_exists(lm_connection_get_keep_alive_rate HAVE_LM_CONNECTION_GET_KEEP_ALIVE_RATE) |
|
42 check_function_exists(lm_connection_unregister_reply_handler HAVE_LM_CONNECTION_UNREGISTER_REPLY_HANDLER) |
|
43 find_package(Perl) |
|
44 # (this should be before targets definitions) |
|
45 link_directories(${LUA_LIBRARY_DIRS} ${GLIB_LIBRARY_DIRS} ${LM_LIBRARY_DIRS}) |
|
46 |
27 ## Define targets |
47 ## Define targets |
28 add_library(loudmouth MODULE util.c lm_types.c lm_proxy.c lm_ssl.c lm_connection.c lm_message.c lm_message_node.c lm_message_handler.c lm.c) |
48 add_library(loudmouth MODULE util.c lm_types.c lm_proxy.c lm_ssl.c lm_connection.c lm_message.c lm_message_node.c lm_message_handler.c lm.c) |
29 get_target_property(lua-lm_SOURCES loudmouth SOURCES) |
49 get_target_property(lua-lm_SOURCES loudmouth SOURCES) |
|
50 |
|
51 ## Set up compiler |
|
52 configure_file(config.h.in config.h) |
|
53 include_directories(SYSTEM ${LUA_INCLUDE_DIR} ${GLIB_INCLUDE_DIRS} ${LM_INCLUDE_DIRS}) |
|
54 target_link_libraries(loudmouth ${LUA_LIBRARIES} ${GLIB_LIBRARIES} ${LM_LIBRARIES}) |
|
55 include_directories(${lua-lm_SOURCE_DIR} ${lua-lm_BINARY_DIR}) |
|
56 set_target_properties(loudmouth PROPERTIES PREFIX "") |
|
57 |
|
58 ## Extra targets |
|
59 if(PERL_FOUND) |
|
60 add_custom_command(OUTPUT ${lua-lm_BINARY_DIR}/loudmouth.html COMMAND ${PERL_EXECUTABLE} ${lua-lm_SOURCE_DIR}/docgen.pl ${lua-lm_SOURCES} > ${lua-lm_BINARY_DIR}/loudmouth.html DEPENDS ${lua-lm_SOURCE_DIR}/docgen.pl ${lua-lm_SOURCES} WORKING_DIRECTORY ${lua-lm_SOURCE_DIR}) |
|
61 add_custom_target(doc ALL DEPENDS ${lua-lm_BINARY_DIR}/loudmouth.html) |
|
62 endif() |
|
63 if(LUA_EXECUTABLE) |
|
64 add_custom_target(test COMMAND env "LUA_PATH=${lua-lm_SOURCE_DIR}/?.lua;${LUA_PATH}" "LUA_CPATH=${lua-lm_SOURCE_DIR}/?.so;${lua-lm_BINARY_DIR}/?.so;${LUA_CPATH}" "${LUA_EXECUTABLE}" "${lua-lm_SOURCE_DIR}/test.lua" "${TEST_USER}" "${TEST_PASSWORD}" "${TEST_TO}" "${TEST_FINGERPRINT}" DEPENDS loudmouth VERBATIM) |
|
65 endif() |
|
66 |
|
67 ## Set up installer |
|
68 install(TARGETS loudmouth DESTINATION lib/lua/5.1) |
|
69 install(FILES lm.lua DESTINATION share/lua/5.1) |
|
70 install(FILES test.lua DESTINATION share/doc/${CPACK_PACKAGE_NAME}/examples) |
|
71 if(PERL_FOUND) |
|
72 install(FILES ${lua-lm_BINARY_DIR}/loudmouth.html DESTINATION share/doc/${CPACK_PACKAGE_NAME}) |
|
73 endif() |
|
74 install(FILES README TODO COPYING DESTINATION share/doc/${CPACK_PACKAGE_NAME}) |
30 |
75 |
31 ## Packaging information |
76 ## Packaging information |
32 set(CPACK_PACKAGE_NAME liblua5.1-loudmouth) |
77 set(CPACK_PACKAGE_NAME liblua5.1-loudmouth) |
33 set(CPACK_PACKAGE_VERSION "0.9.0") |
78 set(CPACK_PACKAGE_VERSION "0.9.0") |
34 set(CPACK_PACKAGE_VENDOR "IsBear") |
79 set(CPACK_PACKAGE_VENDOR "IsBear") |
53 set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}") |
98 set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}_${CPACK_PACKAGE_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}") |
54 # XXX: Set package name directly to get rid of -Sources? |
99 # XXX: Set package name directly to get rid of -Sources? |
55 set(CPACK_SOURCE_IGNORE_FILES "/\\\\..*;\\\\.swp;~$;/build/;\\\\.tar\\\\.;\\\\.deb;\\\\.so") |
100 set(CPACK_SOURCE_IGNORE_FILES "/\\\\..*;\\\\.swp;~$;/build/;\\\\.tar\\\\.;\\\\.deb;\\\\.so") |
56 include(CPack) |
101 include(CPack) |
57 |
102 |
58 ## Gather information about system |
|
59 find_package(Lua51 REQUIRED) |
|
60 find_program(LUA_EXECUTABLE lua lua5.1 luanoreadline) |
|
61 if(LUA_EXECUTABLE) |
|
62 execute_process(COMMAND ${LUA_EXECUTABLE} -e "print ( package.path )" OUTPUT_VARIABLE LUA_PATH OUTPUT_STRIP_TRAILING_WHITESPACE) |
|
63 execute_process(COMMAND ${LUA_EXECUTABLE} -e "print ( package.cpath )" OUTPUT_VARIABLE LUA_CPATH OUTPUT_STRIP_TRAILING_WHITESPACE) |
|
64 endif() |
|
65 find_package(PkgConfig REQUIRED) |
|
66 pkg_check_modules(GLIB REQUIRED glib-2.0) |
|
67 pkg_check_modules(LM REQUIRED loudmouth-1.0) |
|
68 include(CheckFunctionExists) |
|
69 set(CMAKE_REQUIRED_INCLUDES ${LM_INCLUDE_DIRS}) |
|
70 set(CMAKE_REQUIRED_LIBRARIES ${LM_LIBRARIES}) |
|
71 check_function_exists(lm_connection_get_keep_alive_rate HAVE_LM_CONNECTION_GET_KEEP_ALIVE_RATE) |
|
72 check_function_exists(lm_connection_unregister_reply_handler HAVE_LM_CONNECTION_UNREGISTER_REPLY_HANDLER) |
|
73 find_package(Perl) |
|
74 |
|
75 ## Set up compiler |
|
76 configure_file(config.h.in config.h) |
|
77 include_directories(SYSTEM ${LUA_INCLUDE_DIR} ${GLIB_INCLUDE_DIRS} ${LM_INCLUDE_DIRS}) |
|
78 target_link_libraries(loudmouth ${LUA_LIBRARIES} ${GLIB_LIBRARIES} ${LM_LIBRARIES}) |
|
79 include_directories(${lua-lm_SOURCE_DIR} ${lua-lm_BINARY_DIR}) |
|
80 set_target_properties(loudmouth PROPERTIES PREFIX "") |
|
81 |
|
82 ## Extra targets |
|
83 if(PERL_FOUND) |
|
84 add_custom_command(OUTPUT ${lua-lm_BINARY_DIR}/loudmouth.html COMMAND ${PERL_EXECUTABLE} ${lua-lm_SOURCE_DIR}/docgen.pl ${lua-lm_SOURCES} > ${lua-lm_BINARY_DIR}/loudmouth.html DEPENDS ${lua-lm_SOURCE_DIR}/docgen.pl ${lua-lm_SOURCES} WORKING_DIRECTORY ${lua-lm_SOURCE_DIR}) |
|
85 add_custom_target(doc ALL DEPENDS ${lua-lm_BINARY_DIR}/loudmouth.html) |
|
86 endif() |
|
87 if(LUA_EXECUTABLE) |
|
88 add_custom_target(test COMMAND env "LUA_PATH=${lua-lm_SOURCE_DIR}/?.lua;${LUA_PATH}" "LUA_CPATH=${lua-lm_SOURCE_DIR}/?.so;${lua-lm_BINARY_DIR}/?.so;${LUA_CPATH}" "${LUA_EXECUTABLE}" "${lua-lm_SOURCE_DIR}/test.lua" "${TEST_USER}" "${TEST_PASSWORD}" "${TEST_TO}" "${TEST_FINGERPRINT}" DEPENDS loudmouth VERBATIM) |
|
89 endif() |
|
90 |
|
91 ## Set up installer |
|
92 install(TARGETS loudmouth DESTINATION lib/lua/5.1) |
|
93 install(FILES lm.lua DESTINATION share/lua/5.1) |
|
94 install(FILES test.lua DESTINATION share/doc/${CPACK_PACKAGE_NAME}/examples) |
|
95 if(PERL_FOUND) |
|
96 install(FILES ${lua-lm_BINARY_DIR}/loudmouth.html DESTINATION share/doc/${CPACK_PACKAGE_NAME}) |
|
97 endif() |
|
98 install(FILES README DESTINATION share/doc/${CPACK_PACKAGE_NAME}) |
|
99 install(FILES TODO DESTINATION share/doc/${CPACK_PACKAGE_NAME}) |
|
100 install(FILES COPYING DESTINATION share/doc/${CPACK_PACKAGE_NAME}) |
|
101 |
|
102 ## The End ## vim: se ts=4: ## |
103 ## The End ## vim: se ts=4: ## |