Merge pull request #3129 from Carbenium/cmake-reformat
Build: Reindent the CMakeLists
This commit is contained in:
commit
8f9637f21a
|
@ -0,0 +1,2 @@
|
|||
# Reindent CMakeLists
|
||||
6c9983155c65848a3e67976445cd20fb4fbfe108
|
1100
CMakeLists.txt
1100
CMakeLists.txt
File diff suppressed because it is too large
Load Diff
|
@ -7,12 +7,12 @@
|
|||
|
||||
# Display a message to show the RHEL build options are being processed.
|
||||
if(ZM_TARGET_DISTRO MATCHES "^el")
|
||||
message([STATUS] "Starting RHEL Build Options" ...)
|
||||
message([STATUS] "Starting RHEL Build Options" ...)
|
||||
elseif(ZM_TARGET_DISTRO MATCHES "^fc")
|
||||
message([STATUS] "Starting Fedora Build Options" ...)
|
||||
else(ZM_TARGET_DISTRO MATCHES "^el")
|
||||
message([WARNING] "Unknown Build Option Detected" ...)
|
||||
endif(ZM_TARGET_DISTRO MATCHES "^el")
|
||||
message([STATUS] "Starting Fedora Build Options" ...)
|
||||
else()
|
||||
message([WARNING] "Unknown Build Option Detected" ...)
|
||||
endif()
|
||||
|
||||
#
|
||||
# CONFIGURE STAGE
|
||||
|
|
|
@ -2,4 +2,3 @@
|
|||
file(GLOB fontfileslist RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" "*.zmfnt")
|
||||
# Install the fonts
|
||||
install(FILES ${fontfileslist} DESTINATION "${ZM_FONTDIR}")
|
||||
|
||||
|
|
|
@ -17,7 +17,8 @@ configure_file(zm-sudo.in "${CMAKE_CURRENT_BINARY_DIR}/zm-sudo" @ONLY)
|
|||
|
||||
# Install Policykit rules and actions into the proper folders only on systems with systemd
|
||||
if(WITH_SYSTEMD)
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/com.zoneminder.systemctl.policy" DESTINATION "${PC_POLKIT_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/polkit-1/actions")
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/com.zoneminder.systemctl.rules" DESTINATION "${PC_POLKIT_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/polkit-1/rules.d")
|
||||
endif(WITH_SYSTEMD)
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/com.zoneminder.systemctl.policy" DESTINATION "${PC_POLKIT_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/polkit-1/actions")
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/com.zoneminder.systemctl.rules" DESTINATION "${PC_POLKIT_PREFIX}/${CMAKE_INSTALL_DATAROOTDIR}/polkit-1/rules.d")
|
||||
endif()
|
||||
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/zoneminder.desktop" DESTINATION "${CMAKE_INSTALL_DATADIR}/applications")
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
# If this is an out-of-source build, copy the files we need to the binary directory
|
||||
if(NOT (CMAKE_BINARY_DIR STREQUAL CMAKE_SOURCE_DIR))
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/Makefile.PL" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/lib" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}" PATTERN "*.in" EXCLUDE)
|
||||
endif(NOT (CMAKE_BINARY_DIR STREQUAL CMAKE_SOURCE_DIR))
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/Makefile.PL" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/lib" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}" PATTERN "*.in" EXCLUDE)
|
||||
endif()
|
||||
|
||||
# MAKEMAKER_NOECHO_COMMAND previously defined in /scripts/zoneminder/CMakeLists.txt
|
||||
|
||||
|
|
|
@ -2,9 +2,9 @@
|
|||
|
||||
# If this is an out-of-source build, copy the files we need to the binary directory
|
||||
if(NOT (CMAKE_BINARY_DIR STREQUAL CMAKE_SOURCE_DIR))
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/Makefile.PL" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/lib" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}" PATTERN "*.in" EXCLUDE)
|
||||
endif(NOT (CMAKE_BINARY_DIR STREQUAL CMAKE_SOURCE_DIR))
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/Makefile.PL" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/lib" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}" PATTERN "*.in" EXCLUDE)
|
||||
endif()
|
||||
|
||||
# MAKEMAKER_NOECHO_COMMAND previously defined in /scripts/zoneminder/CMakeLists.txt
|
||||
|
||||
|
|
|
@ -22,8 +22,8 @@ configure_file(zmcamtool.pl.in "${CMAKE_CURRENT_BINARY_DIR}/zmcamtool.pl" @ONLY)
|
|||
configure_file(zmsystemctl.pl.in "${CMAKE_CURRENT_BINARY_DIR}/zmsystemctl.pl" @ONLY)
|
||||
configure_file(zmtelemetry.pl.in "${CMAKE_CURRENT_BINARY_DIR}/zmtelemetry.pl" @ONLY)
|
||||
if(NOT ZM_NO_X10)
|
||||
configure_file(zmx10.pl.in "${CMAKE_CURRENT_BINARY_DIR}/zmx10.pl" @ONLY)
|
||||
endif(NOT ZM_NO_X10)
|
||||
configure_file(zmx10.pl.in "${CMAKE_CURRENT_BINARY_DIR}/zmx10.pl" @ONLY)
|
||||
endif()
|
||||
#configure_file(zmdbbackup.in zmdbbackup @ONLY)
|
||||
#configure_file(zmdbrestore.in zmdbrestore @ONLY)
|
||||
configure_file(zm.in "${CMAKE_CURRENT_BINARY_DIR}/zm" @ONLY)
|
||||
|
@ -32,11 +32,11 @@ configure_file(zm.in "${CMAKE_CURRENT_BINARY_DIR}/zm" @ONLY)
|
|||
# Generate man files for the perl scripts destined for the bin folder
|
||||
if(BUILD_MAN)
|
||||
file(GLOB perlscripts "${CMAKE_CURRENT_BINARY_DIR}/*.pl")
|
||||
FOREACH(PERLSCRIPT ${perlscripts})
|
||||
foreach(PERLSCRIPT ${perlscripts})
|
||||
get_filename_component(PERLSCRIPTNAME ${PERLSCRIPT} NAME)
|
||||
POD2MAN(${PERLSCRIPT} ${PERLSCRIPTNAME} 8 ${ZM_MANPAGE_DEST_PREFIX})
|
||||
ENDFOREACH(PERLSCRIPT ${perlscripts})
|
||||
endif(BUILD_MAN)
|
||||
endforeach(PERLSCRIPT ${perlscripts})
|
||||
endif()
|
||||
|
||||
# Install the perl scripts
|
||||
install(FILES
|
||||
|
@ -58,9 +58,9 @@ install(FILES
|
|||
"${CMAKE_CURRENT_BINARY_DIR}/zmstats.pl"
|
||||
DESTINATION "${CMAKE_INSTALL_FULL_BINDIR}" PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
||||
if(NOT ZM_NO_X10)
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/zmx10.pl" DESTINATION "${CMAKE_INSTALL_FULL_BINDIR}" PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
||||
endif(NOT ZM_NO_X10)
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/zmx10.pl" DESTINATION "${CMAKE_INSTALL_FULL_BINDIR}" PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
||||
endif()
|
||||
|
||||
if(WITH_SYSTEMD)
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/zmsystemctl.pl" DESTINATION "${CMAKE_INSTALL_FULL_BINDIR}" PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
||||
endif(WITH_SYSTEMD)
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/zmsystemctl.pl" DESTINATION "${CMAKE_INSTALL_FULL_BINDIR}" PERMISSIONS OWNER_WRITE OWNER_READ OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
|
||||
endif()
|
||||
|
|
|
@ -2,14 +2,14 @@
|
|||
|
||||
# If this is an out-of-source build, copy the files we need to the binary directory
|
||||
if(NOT (CMAKE_BINARY_DIR STREQUAL CMAKE_SOURCE_DIR))
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/Changes" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/Makefile.PL" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/MANIFEST" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/META.yml" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/README" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/t" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/lib" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}" PATTERN "*.in" EXCLUDE)
|
||||
endif(NOT (CMAKE_BINARY_DIR STREQUAL CMAKE_SOURCE_DIR))
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/Changes" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/Makefile.PL" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/MANIFEST" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/META.yml" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/README" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/t" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}")
|
||||
file(COPY "${CMAKE_CURRENT_SOURCE_DIR}/lib" DESTINATION "${CMAKE_CURRENT_BINARY_DIR}" PATTERN "*.in" EXCLUDE)
|
||||
endif()
|
||||
|
||||
# Create files from the .in files
|
||||
configure_file(lib/ZoneMinder/Base.pm.in "${CMAKE_CURRENT_BINARY_DIR}/lib/ZoneMinder/Base.pm" @ONLY)
|
||||
|
@ -19,10 +19,10 @@ configure_file(lib/ZoneMinder/ConfigData.pm.in "${CMAKE_CURRENT_BINARY_DIR}/lib/
|
|||
configure_file(lib/ZoneMinder/ONVIF.pm.in "${CMAKE_CURRENT_BINARY_DIR}/lib/ZoneMinder/ONVIF.pm" @ONLY)
|
||||
|
||||
if(CMAKE_VERBOSE_MAKEFILE)
|
||||
set(MAKEMAKER_NOECHO_COMMAND "")
|
||||
else(CMAKE_VERBOSE_MAKEFILE)
|
||||
set(MAKEMAKER_NOECHO_COMMAND "NOECHO=\"1>/dev/null\"")
|
||||
endif(CMAKE_VERBOSE_MAKEFILE)
|
||||
set(MAKEMAKER_NOECHO_COMMAND "")
|
||||
else()
|
||||
set(MAKEMAKER_NOECHO_COMMAND "NOECHO=\"1>/dev/null\"")
|
||||
endif()
|
||||
|
||||
# Add build target for the perl modules
|
||||
add_custom_target(zmperlmodules ALL perl Makefile.PL ${ZM_PERL_MM_PARMS_FULL} FIRST_MAKEFILE=MakefilePerl DESTDIR="${CMAKE_CURRENT_BINARY_DIR}/output" ${MAKEMAKER_NOECHO_COMMAND} COMMAND make -f MakefilePerl pure_install COMMENT "Building ZoneMinder perl modules")
|
||||
|
|
|
@ -5,70 +5,70 @@ configure_file(zm_config_data.h.in "${CMAKE_CURRENT_BINARY_DIR}/zm_config_data.h
|
|||
|
||||
# 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)
|
||||
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})
|
||||
|
@ -93,13 +93,13 @@ target_link_libraries(zms zm ${ZM_EXTRA_LIBS} ${ZM_BIN_LIBS} ${CMAKE_DL_LIBS} bc
|
|||
|
||||
# Generate man files for the binaries destined for the bin folder
|
||||
if(BUILD_MAN)
|
||||
FOREACH(CBINARY zmc zmu)
|
||||
foreach(CBINARY zmc zmu)
|
||||
POD2MAN(${CMAKE_CURRENT_SOURCE_DIR}/${CBINARY}.cpp ${CBINARY} 8 ${ZM_MANPAGE_DEST_PREFIX})
|
||||
ENDFOREACH(CBINARY zmc zmu)
|
||||
endif(BUILD_MAN)
|
||||
endforeach(CBINARY zmc zmu)
|
||||
endif()
|
||||
|
||||
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(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}")
|
||||
|
||||
|
|
|
@ -12,8 +12,8 @@ install(FILES "${CMAKE_CURRENT_BINARY_DIR}/includes/config.php" DESTINATION "${Z
|
|||
|
||||
# Install the api config files (if its not in the source directory)
|
||||
if(NOT (CMAKE_BINARY_DIR STREQUAL CMAKE_SOURCE_DIR))
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/api/app/Config/core.php" DESTINATION "${ZM_WEBDIR}/api/app/Config")
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/api/app/Config/database.php" DESTINATION "${ZM_WEBDIR}/api/app/Config")
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/api/app/Config/bootstrap.php" DESTINATION "${ZM_WEBDIR}/api/app/Config")
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/api/lib/Cake/bootstrap.php" DESTINATION "${ZM_WEBDIR}/api/lib/Cake")
|
||||
endif(NOT (CMAKE_BINARY_DIR STREQUAL CMAKE_SOURCE_DIR))
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/api/app/Config/core.php" DESTINATION "${ZM_WEBDIR}/api/app/Config")
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/api/app/Config/database.php" DESTINATION "${ZM_WEBDIR}/api/app/Config")
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/api/app/Config/bootstrap.php" DESTINATION "${ZM_WEBDIR}/api/app/Config")
|
||||
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/api/lib/Cake/bootstrap.php" DESTINATION "${ZM_WEBDIR}/api/lib/Cake")
|
||||
endif()
|
||||
|
|
Loading…
Reference in New Issue