CMakeLists.txt
changeset 32 493d5d5198c8
parent 31 afcdbbce5002
child 34 6bfad7c963f4
equal deleted inserted replaced
31:afcdbbce5002 32:493d5d5198c8
    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: ##