Subversion Repositories HomeAutomation

Rev

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
PROJECT(atom)
3
project(atom)
4
 
4
 
-
 
5
find_program(SVN_EXECUTABLE svn DOC "subversion command line client")
5
#set(CMAKE_BINARY_DIR ${CMAKE_BINARY_DIR}/build)
6
macro(GET_SVN_REVISION dir variable)
-
 
7
    execute_process(COMMAND ${SVN_EXECUTABLE} info ${dir} OUTPUT_VARIABLE ${variable} OUTPUT_STRIP_TRAILING_WHITESPACE)
6
#set(CMAKE_CURRENT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}/build)
8
    string(REGEX REPLACE "^(.*\n)?Revision: ([^\n]+).*" "\\2" ${variable} "${${variable}}")
-
 
9
endmacro(GET_SVN_REVISION)
7
 
10
 
8
FIND_PROGRAM(SVN_EXECUTABLE svn DOC "subversion command line client")
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
add_executable(atomic 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)
13
include_directories(${CMAKE_CURRENT_BINARY_DIR})
19
 
-
 
20
IF(${USE_PLUGIN_XORG})
-
 
21
    add_executable(atomd src/common/common.cpp src/control/Code.cpp src/vm/plugin/Xorg.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)
14
include_directories(src)
22
ELSE(${USE_PLUGIN_XORG})
-
 
23
    add_executable(atomd 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)
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
target_link_libraries(atomic ${CMAKE_THREAD_LIBS_INIT})
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
target_link_libraries(atomic ${Boost_LIBRARIES})
22
set(ATOMD_LIBS ${CMAKE_THREAD_LIBS_INIT} ${Boost_LIBRARIES} v8)
-
 
23
 
32
target_link_libraries(atomic readline)
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
target_link_libraries(atomd ${CMAKE_THREAD_LIBS_INIT})
34
add_executable(atomd ${ATOMD_FILES})
34
target_link_libraries(atomd ${Boost_LIBRARIES})
35
target_link_libraries(atomd ${ATOMD_LIBS})
-
 
36
 
-
 
37
add_executable(atomic ${ATOMIC_FILES})
35
target_link_libraries(atomd v8)
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
    set(CPACK_DEBIAN_PACKAGE_DEPENDS "libc6 (>= 2.3.6), libgcc1 (>= 1:4.1)")
59
GET_SVN_REVISION(${CMAKE_CURRENT_SOURCE_DIR} SUBVERSION_REVISION)
60
ELSE(${USE_PLUGIN_XORG})
-
 
61
    MESSAGE(STATUS "Building without Xorg support")
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
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/src/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
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 ../