2
2
cmake_minimum_required (VERSION 2.8.4 )
3
3
4
4
project (domoticz )
5
-
5
+
6
6
option (USE_BUILTIN_LUA "Use builtin lua library" YES )
7
7
IF (USE_BUILTIN_LUA )
8
8
add_subdirectory (lua )
@@ -41,7 +41,7 @@ ELSE(USE_BUILTIN_SQLITE)
41
41
ENDIF (SQLite_FOUND )
42
42
ENDIF (USE_BUILTIN_SQLITE )
43
43
44
- SET (EXECUTABLE_OUTPUT_PATH "" CACHE INTERNAL
44
+ SET (EXECUTABLE_OUTPUT_PATH "" CACHE INTERNAL
45
45
"Where to put the executables for Domoticz"
46
46
)
47
47
@@ -150,14 +150,14 @@ set (domoticz_VERSION_MAJOR 3)
150
150
set (domoticz_VERSION_MINOR 0 )
151
151
set (domoticz_VERSION_PATCH ${ProjectRevision} )
152
152
153
- include_directories (${CMAKE_SOURCE_DIR} /main )
153
+ include_directories (${CMAKE_SOURCE_DIR} /main )
154
154
155
155
# a custom target that is always built
156
156
ADD_CUSTOM_TARGET (revisiontag ALL )
157
157
158
158
# creates appversion.h using cmake script
159
159
ADD_CUSTOM_COMMAND (TARGET revisiontag COMMAND ${CMAKE_COMMAND}
160
- -DSOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}
160
+ -DSOURCE_DIR=${CMAKE_CURRENT_SOURCE_DIR}
161
161
-P ${CMAKE_CURRENT_SOURCE_DIR} /getgit.cmake )
162
162
163
163
## Target
@@ -330,19 +330,56 @@ add_dependencies(domoticz revisiontag)
330
330
331
331
## Link libraries
332
332
333
- option (USE_STATIC_BOOST "Build with static BOOST libraries" YES )
333
+ option (USE_PYTHON "Use Python as a scripting language" NO )
334
+ if (USE_PYTHON )
335
+ FIND_PACKAGE (PythonLibs )
336
+ IF (PYTHONLIBS_FOUND )
337
+ MESSAGE (STATUS "Python libraries found at: ${PYTHON_LIBRARIES} " )
338
+ MESSAGE (STATUS "Python includes found at: ${PYTHON_INCLUDE_PATH} " )
339
+ INCLUDE_DIRECTORIES (${PYTHON_INCLUDE_PATH} )
340
+ else ()
341
+ MESSAGE (FATAL_ERROR "Python not found on your system, see install.txt how to get them installed. (for example 'sudo apt-get install python-dev')" )
342
+ ENDIF (PYTHONLIBS_FOUND )
343
+
344
+ FIND_PACKAGE (PythonInterp )
345
+ IF (PYTHONINTERP_FOUND )
346
+ MESSAGE (STATUS "Python interpreter found at: ${PYTHON_EXECUTABLE} " )
347
+ INCLUDE_DIRECTORIES (${PYTHON_INCLUDE_PATH} )
348
+ LIST (APPEND ADDITIONAL_LIBS ${PYTHON_LIBRARIES} )
349
+ MESSAGE (STATUS "Python as scripting languages: ENABLED" )
350
+ IF (PYTHONLIBS_FOUND )
351
+ add_definitions (-DENABLE_PYTHON )
352
+ add_definitions (-DPYTHON_EXE=${PYTHON_EXECUTABLE} )
353
+ target_link_libraries (domoticz ${PYTHON_LIBRARIES} )
354
+ ELSE ()
355
+ MESSAGE (FATAL_ERROR "Python not found on your system, see install.txt how to get them installed. (for example 'sudo apt-get install python-dev')" )
356
+ ENDIF (PYTHONLIBS_FOUND )
357
+
358
+ else ()
359
+ MESSAGE (FATAL_ERROR "Python not found on your system, see install.txt how to get them installed. (for example 'sudo apt-get install python-dev')" )
360
+ ENDIF (PYTHONINTERP_FOUND )
361
+ endif (USE_PYTHON )
362
+
363
+ option (USE_STATIC_BOOST "Build with static BOOST libraries" NO )
334
364
set (Boost_USE_STATIC_LIBS ${USE_STATIC_BOOST} )
335
365
set (Boost_USE_MULTITHREADED ON )
336
366
unset (Boost_INCLUDE_DIR CACHE )
337
367
unset (Boost_LIBRARY_DIRS CACHE )
338
- find_package (Boost REQUIRED COMPONENTS thread date_time system )
368
+ IF (USE_PYTHON AND PYTHONLIBS_FOUND )
369
+ find_package (Boost REQUIRED COMPONENTS thread date_time system python )
370
+ else ()
371
+ find_package (Boost REQUIRED COMPONENTS thread date_time system )
372
+ endif (USE_PYTHON AND PYTHONLIBS_FOUND )
373
+
339
374
if (USE_STATIC_BOOST )
340
375
message (STATUS "Linking against boost static libraries" )
341
376
else (USE_STATIC_BOOST )
342
377
message (STATUS "Linking against boost dynamic libraries" )
343
378
endif (USE_STATIC_BOOST )
344
379
include_directories (${Boost_INCLUDE_DIRS} )
345
380
381
+
382
+
346
383
option (USE_BUILTIN_ZLIB "Use builtin zlib library" NO )
347
384
if (USE_BUILTIN_ZLIB )
348
385
add_subdirectory (zlib )
@@ -419,12 +456,12 @@ else()
419
456
MESSAGE (STATUS "==== OpenZWave package found!" )
420
457
find_library (OpenZWave NAMES libopenzwave.so HINTS ${OPENZWAVE_LIBRARY_DIRS} )
421
458
message (STATUS ${OpenZWave} )
422
- endif ()
459
+ endif ()
423
460
endif ()
424
461
IF (OpenZWave )
425
462
message (STATUS ${OpenZWave} )
426
463
target_link_libraries (domoticz ${OpenZWave} )
427
- include_directories (${CMAKE_SOURCE_DIR} /hardware/openzwave )
464
+ include_directories (${CMAKE_SOURCE_DIR} /hardware/openzwave )
428
465
add_definitions (-DWITH_OPENZWAVE )
429
466
# open-zwave needs libudev
430
467
IF (CMAKE_SYSTEM_NAME STREQUAL "Darwin" )
@@ -433,16 +470,16 @@ IF(OpenZWave)
433
470
else ()
434
471
IF (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" )
435
472
MESSAGE (STATUS "Building on FreeBSD, libudev not needed!" )
436
- FIND_PATH (ICONV_INCLUDE_DIR iconv.h )
473
+ FIND_PATH (ICONV_INCLUDE_DIR iconv.h )
437
474
FIND_LIBRARY (ICONV_LIBRARIES NAMES iconv libiconv libiconv-2 c )
438
- IF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES )
439
- SET (ICONV_FOUND TRUE )
475
+ IF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES )
476
+ SET (ICONV_FOUND TRUE )
440
477
#target_link_libraries(domoticz ${ICONV_INCLUDE_DIR})
441
478
target_link_libraries (domoticz ${ICONV_LIBRARIES} -lrt )
442
479
message (STATUS ${ICONV_LIBRARIES} )
443
480
else ()
444
481
MESSAGE (FATAL_ERROR "libiconv not found on your system" )
445
- ENDIF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES )
482
+ ENDIF (ICONV_INCLUDE_DIR AND ICONV_LIBRARIES )
446
483
else ()
447
484
find_library (UDEV NAMES libudev.a )
448
485
IF (UDEV )
@@ -474,7 +511,7 @@ IF(RaspberryPi)
474
511
IF (WIRINGPI_LIBRARY )
475
512
message (STATUS "WiringPi library was found in ${WIRINGPI_LIBRARY} ..." )
476
513
add_definitions (-DWITH_GPIO )
477
- target_link_libraries (domoticz ${WIRINGPI_LIBRARY} )
514
+ target_link_libraries (domoticz ${WIRINGPI_LIBRARY} )
478
515
else ()
479
516
message (STATUS "==== WiringPi library not found. GPIO support disabled." )
480
517
message (STATUS "==== (Please follow http://wiringpi.com/download-and-install/ if you want to use GPIO.)" )
0 commit comments