99 lines
2.7 KiB
CMake
99 lines
2.7 KiB
CMake
# CMakeLists.txt for the ZoneMinder binaries
|
|
|
|
# Create files from the .in files
|
|
configure_file(zm_config_data.h.in "${CMAKE_CURRENT_BINARY_DIR}/zm_config_data.h" @ONLY)
|
|
|
|
# Group together all the source files that are used by all the binaries (zmc, zmu, zms etc)
|
|
set(ZM_BIN_SRC_FILES
|
|
zm_analysis_thread.cpp
|
|
zm_box.cpp
|
|
zm_buffer.cpp
|
|
zm_camera.cpp
|
|
zm_comms.cpp
|
|
zm_config.cpp
|
|
zm_coord.cpp
|
|
zm_curl_camera.cpp
|
|
zm_crypt.cpp
|
|
zm.cpp
|
|
zm_db.cpp
|
|
zm_logger.cpp
|
|
zm_event.cpp
|
|
zm_eventstream.cpp
|
|
zm_exception.cpp
|
|
zm_fifo.cpp
|
|
zm_file_camera.cpp
|
|
zm_font.cpp
|
|
zm_frame.cpp
|
|
zm_group.cpp
|
|
zm_image.cpp
|
|
zm_jpeg.cpp
|
|
zm_libvlc_camera.cpp
|
|
zm_libvnc_camera.cpp
|
|
zm_local_camera.cpp
|
|
zm_monitor.cpp
|
|
zm_monitorstream.cpp
|
|
zm_ffmpeg.cpp
|
|
zm_ffmpeg_camera.cpp
|
|
zm_ffmpeg_input.cpp
|
|
zm_mpeg.cpp
|
|
zm_packet.cpp
|
|
zm_packetqueue.cpp
|
|
zm_poly.cpp
|
|
zm_regexp.cpp
|
|
zm_remote_camera.cpp
|
|
zm_remote_camera_http.cpp
|
|
zm_remote_camera_nvsocket.cpp
|
|
zm_remote_camera_rtsp.cpp
|
|
zm_rtp.cpp
|
|
zm_rtp_ctrl.cpp
|
|
zm_rtp_data.cpp
|
|
zm_rtp_source.cpp
|
|
zm_rtsp.cpp
|
|
zm_rtsp_auth.cpp
|
|
zm_rtsp_server_thread.cpp
|
|
zm_rtsp_server_adts_source.cpp
|
|
zm_rtsp_server_h264_device_source.cpp
|
|
zm_rtsp_server_device_source.cpp
|
|
zm_rtsp_server_server_media_subsession.cpp
|
|
zm_rtsp_server_unicast_server_media_subsession.cpp
|
|
zm_sdp.cpp
|
|
zm_signal.cpp
|
|
zm_stream.cpp
|
|
zm_swscale.cpp
|
|
zm_thread.cpp
|
|
zm_time.cpp
|
|
zm_timer.cpp
|
|
zm_user.cpp
|
|
zm_utils.cpp
|
|
zm_video.cpp
|
|
zm_videostore.cpp
|
|
zm_zone.cpp
|
|
zm_storage.cpp)
|
|
|
|
# A fix for cmake recompiling the source files for every target.
|
|
add_library(zm STATIC ${ZM_BIN_SRC_FILES})
|
|
link_directories(libbcrypt)
|
|
|
|
add_executable(zmc zmc.cpp)
|
|
add_executable(zmu zmu.cpp)
|
|
add_executable(zms zms.cpp)
|
|
|
|
# JWT is a header only library.
|
|
include_directories(libbcrypt/include/bcrypt)
|
|
include_directories(jwt-cpp/include/jwt-cpp)
|
|
|
|
target_link_libraries(zmc zm ${ZM_EXTRA_LIBS} ${ZM_BIN_LIBS} ${CMAKE_DL_LIBS})
|
|
target_link_libraries(zmu zm ${ZM_EXTRA_LIBS} ${ZM_BIN_LIBS} ${CMAKE_DL_LIBS} bcrypt)
|
|
target_link_libraries(zms zm ${ZM_EXTRA_LIBS} ${ZM_BIN_LIBS} ${CMAKE_DL_LIBS} bcrypt)
|
|
|
|
# Generate man files for the binaries destined for the bin folder
|
|
FOREACH(CBINARY zmc zmu)
|
|
POD2MAN(${CMAKE_CURRENT_SOURCE_DIR}/${CBINARY}.cpp ${CBINARY} 8 ${ZM_MANPAGE_DEST_PREFIX})
|
|
ENDFOREACH(CBINARY zmc zmu)
|
|
|
|
install(TARGETS zmc zmu RUNTIME DESTINATION "${CMAKE_INSTALL_FULL_BINDIR}" PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
|
install(TARGETS zms RUNTIME DESTINATION "${ZM_CGIDIR}" PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
|
install(CODE "execute_process(COMMAND ln -sf zms nph-zms WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})" )
|
|
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/nph-zms DESTINATION "${ZM_CGIDIR}")
|
|
|