Rev 1662 | Rev 1665 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | SVN | RSS feed
| Rev 1662 | Rev 1663 | ||
|---|---|---|---|
| Line 1... | Line 1... | ||
| 1 | cmake_minimum_required(VERSION 2.8) |
1 | cmake_minimum_required(VERSION 2.8) |
| 2 | 2 | ||
| 3 |
|
3 | project(atom) |
| 4 | 4 | ||
| - | 5 | find_program(SVN_EXECUTABLE svn DOC "subversion command line client") |
|
| 5 |
|
6 | macro(GET_SVN_REVISION dir variable) |
| - | 7 | execute_process(COMMAND ${SVN_EXECUTABLE} info ${dir} OUTPUT_VARIABLE ${variable} OUTPUT_STRIP_TRAILING_WHITESPACE) |
|
| 6 |
|
8 | string(REGEX REPLACE "^(.*\n)?Revision: ([^\n]+).*" "\\2" ${variable} "${${variable}}") |
| - | 9 | endmacro(GET_SVN_REVISION) |
|
| 7 | 10 | ||
| 8 |
|
11 | include(FindX11) |
| 9 | 12 | ||
| 10 | MACRO(Subversion_GET_REVISION dir variable) |
- | |
| 11 | EXECUTE_PROCESS(COMMAND ${SVN_EXECUTABLE} info ${dir} OUTPUT_VARIABLE ${variable} OUTPUT_STRIP_TRAILING_WHITESPACE) |
- | |
| 12 | STRING(REGEX REPLACE "^(.*\n)?Revision: ([^\n]+).*" "\\2" ${variable} "${${variable}}") |
- | |
| 13 | ENDMACRO(Subversion_GET_REVISION) |
- | |
| 14 | - | ||
| 15 | Subversion_GET_REVISION(${CMAKE_CURRENT_SOURCE_DIR} SUBVERSION_REVISION) |
- | |
| 16 | MESSAGE(STATUS "Revision is ${SUBVERSION_REVISION}") |
- | |
| 17 | - | ||
| 18 |
|
13 | include_directories(${CMAKE_CURRENT_BINARY_DIR}) |
| 19 | - | ||
| 20 | IF(${USE_PLUGIN_XORG}) |
- | |
| 21 |
|
14 | include_directories(src) |
| 22 | ELSE(${USE_PLUGIN_XORG}) |
- | |
| 23 |
|
15 | add_subdirectory(src) |
| 24 | ENDIF(${USE_PLUGIN_XORG}) |
- | |
| 25 | 16 | ||
| 26 | set(BOOST_LIBS thread-mt system-mt signals-mt program_options-mt filesystem-mt date_time-mt) |
17 | set(BOOST_LIBS thread-mt system-mt signals-mt program_options-mt filesystem-mt date_time-mt) |
| 27 | find_package(Boost COMPONENTS ${BOOST_LIBS} REQUIRED) |
18 | find_package(Boost COMPONENTS ${BOOST_LIBS} REQUIRED) |
| 28 | find_package(Threads REQUIRED) |
19 | find_package(Threads REQUIRED) |
| 29 | 20 | ||
| 30 |
|
21 | set(ATOMD_FILES src/common/common.cpp src/control/Code.cpp src/vm/plugin/Storage.cpp src/storage/Store.cpp src/storage/Manager.cpp src/vm/plugin/Socket.cpp src/vm/plugin/Console.cpp src/vm/plugin/Module.cpp src/vm/plugin/Node.cpp src/vm/plugin/Timer.cpp src/vm/plugin/System.cpp src/vm/Plugin.cpp src/vm/Manager.cpp src/timer/Subscriber.cpp src/control/Module.cpp src/control/Node.cpp src/control/Manager.cpp src/common/IoService.cpp src/net/Subscriber.cpp src/can/Monitor.cpp src/can/Message.cpp src/xml/Node.cpp src/can/Protocol.cpp src/common/Bitset.cpp src/common/Byteset.cpp src/can/Network.cpp src/broker/Subscriber.cpp src/broker/Message.cpp src/broker/Manager.cpp src/config/Manager.cpp src/logging/Logger.cpp src/timer/Timer.cpp src/timer/Manager.cpp src/net/SerialClient.cpp src/net/UdpClient.cpp src/net/TcpClient.cpp src/net/Client.cpp src/net/Manager.cpp src/atomd.cpp) |
| 31 |
|
22 | set(ATOMD_LIBS ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES} v8) |
| - | 23 | ||
| 32 |
|
24 | set(ATOMIC_FILES src/common/common.cpp src/atomic.cpp src/logging/Logger.cpp src/common/IoService.cpp src/net/Subscriber.cpp src/common/Byteset.cpp src/net/SerialClient.cpp src/net/UdpClient.cpp src/net/TcpClient.cpp src/net/Client.cpp src/net/Manager.cpp) |
| - | 25 | set(ATOMIC_LIBS ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES} readline) |
|
| - | 26 | ||
| - | 27 | if(${X11_FOUND}) |
|
| - | 28 | message(STATUS "Building with Xorg support") |
|
| - | 29 | set(USE_PLUGIN_XORG ON) |
|
| - | 30 | set(ATOMD_FILES ${ATOMD_FILES} src/vm/plugin/Xorg.cpp) |
|
| - | 31 | set(ATOMD_LIBS ${ATOMD_LIBS} ${X11_LIBRARIES}) |
|
| - | 32 | endif(${X11_FOUND}) |
|
| - | 33 | ||
| 33 |
|
34 | add_executable(atomd ${ATOMD_FILES}) |
| 34 | target_link_libraries(atomd ${ |
35 | target_link_libraries(atomd ${ATOMD_LIBS}) |
| - | 36 | ||
| - | 37 | add_executable(atomic ${ATOMIC_FILES}) |
|
| 35 | target_link_libraries( |
38 | target_link_libraries(atomic ${ATOMIC_LIBS}) |
| 36 | 39 | ||
| 37 | #NEEDED libpthread.so.0 |
40 | #NEEDED libpthread.so.0 |
| 38 | #NEEDED libboost_thread.so.1.42.0 |
41 | #NEEDED libboost_thread.so.1.42.0 |
| 39 | #NEEDED libboost_system.so.1.42.0 |
42 | #NEEDED libboost_system.so.1.42.0 |
| 40 | #NEEDED libboost_signals.so.1.42.0 |
43 | #NEEDED libboost_signals.so.1.42.0 |
| Line 51... | Line 54... | ||
| 51 | # objdump -p build/atomic | grep NEEDED |
54 | # objdump -p build/atomic | grep NEEDED |
| 52 | # apt-file search libpthread | grep /usr/lib |
55 | # apt-file search libpthread | grep /usr/lib |
| 53 | 56 | ||
| 54 | # TODO: Fix dependencies |
57 | # TODO: Fix dependencies |
| 55 | 58 | ||
| 56 | IF(${USE_PLUGIN_XORG}) |
- | |
| 57 | MESSAGE(STATUS "Building with Xorg support") |
- | |
| 58 | target_link_libraries(atomd X11) |
- | |
| 59 |
|
59 | GET_SVN_REVISION(${CMAKE_CURRENT_SOURCE_DIR} SUBVERSION_REVISION) |
| 60 | ELSE(${USE_PLUGIN_XORG}) |
- | |
| 61 |
|
60 | message(STATUS "SVN revision is ${SUBVERSION_REVISION}") |
| 62 | set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.3.6), libgcc1 (>= 1:4.1)") |
- | |
| 63 | ENDIF(${USE_PLUGIN_XORG}) |
- | |
| 64 | - | ||
| 65 | - | ||
| 66 | include_directories(.) |
- | |
| 67 | include_directories(src) |
- | |
| 68 | include_directories(build) |
- | |
| 69 | add_subdirectory(src) |
- | |
| 70 | - | ||
| 71 | SET(CPACK_PACKAGING_INSTALL_PREFIX "/") |
- | |
| 72 | 61 | ||
| 73 | install(TARGETS atomd RUNTIME DESTINATION usr/bin) |
62 | install(TARGETS atomd RUNTIME DESTINATION usr/bin) |
| 74 | install(TARGETS atomic RUNTIME DESTINATION usr/bin) |
63 | install(TARGETS atomic RUNTIME DESTINATION usr/bin) |
| 75 | - | ||
| 76 | install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/script" DESTINATION usr/share/atom FILES_MATCHING PATTERN "*.js" PATTERN ".svn" EXCLUDE) |
64 | install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/script" DESTINATION usr/share/atom FILES_MATCHING PATTERN "*.js" PATTERN ".svn" EXCLUDE) |
| 77 | install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/uscript" DESTINATION etc/atom FILES_MATCHING PATTERN "*" PATTERN ".svn" EXCLUDE) |
65 | install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/uscript" DESTINATION etc/atom FILES_MATCHING PATTERN "*" PATTERN ".svn" EXCLUDE) |
| 78 | install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/storage" DESTINATION etc/atom FILES_MATCHING PATTERN "*" PATTERN ".svn" EXCLUDE) |
66 | install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/storage" DESTINATION etc/atom FILES_MATCHING PATTERN "*" PATTERN ".svn" EXCLUDE) |
| 79 | install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../Configuration/data.xml" DESTINATION usr/share/atom/protocol) |
67 | install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/../../Configuration/data.xml" DESTINATION usr/share/atom/protocol) |
| 80 | install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/atom.conf.template" DESTINATION etc/atom) |
68 | install(FILES "${CMAKE_CURRENT_SOURCE_DIR}/atom.conf.template" DESTINATION etc/atom) |
| 81 | 69 | ||
| 82 | - | ||
| - | 70 | SET(CPACK_PACKAGING_INSTALL_PREFIX "/") |
|
| 83 | set(CPACK_PACKAGE_DESCRIPTION "Homeautomation Control Software") |
71 | set(CPACK_PACKAGE_DESCRIPTION "Homeautomation Control Software") |
| 84 | set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Contains atomd and atomic for controlling your can network. Works in unison with the hardware on project.auml.se.") |
72 | set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Contains atomd and atomic for controlling your can network. Works in unison with the hardware on project.auml.se.") |
| 85 | set(CPACK_PACKAGE_NAME "atom") |
73 | set(CPACK_PACKAGE_NAME "atom") |
| 86 | - | ||
| 87 | set(CPACK_PACKAGE_CONTACT "Mattias Runge") |
74 | set(CPACK_PACKAGE_CONTACT "Mattias Runge") |
| 88 | set(CPACK_PACKAGE_VENDOR "project.auml.se") |
75 | set(CPACK_PACKAGE_VENDOR "project.auml.se") |
| 89 | set(CPACK_PACKAGE_VERSION_MAJOR "1") |
76 | set(CPACK_PACKAGE_VERSION_MAJOR "1") |
| 90 | set(CPACK_PACKAGE_VERSION_MINOR "5") |
77 | set(CPACK_PACKAGE_VERSION_MINOR "5") |
| 91 | set(CPACK_PACKAGE_VERSION_PATCH "${SUBVERSION_REVISION}") |
78 | set(CPACK_PACKAGE_VERSION_PATCH "${SUBVERSION_REVISION}") |
| 92 | set(VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") |
- | |
| 93 | - | ||
| 94 | set(CPACK_GENERATOR "DEB;") |
79 | set(CPACK_GENERATOR "DEB;") |
| - | 80 | set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.3.6), libgcc1 (>= 1:4.1)") |
|
| 95 | set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}-${CMAKE_SYSTEM_PROCESSOR}") |
81 | set(CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME}-${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}-${CMAKE_SYSTEM_PROCESSOR}") |
| 96 | 82 | ||
| 97 | include(CPack) |
83 | include(CPack) |
| 98 | 84 | ||
| - | 85 | set(VERSION "${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH}") |
|
| - | 86 | ||
| 99 |
|
87 | configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h) |
| 100 | 88 | ||
| 101 | # To enable the Xorg plugin |
89 | # To enable the Xorg plugin |
| 102 | # cmake -DUSE_PLUGIN_XORG=true ../ |
90 | # cmake -DUSE_PLUGIN_XORG=true ../ |