cmake: installation support for git
Install the built binaries and scripts using CMake This is very similar to `make install`. By default the destination directory(DESTDIR) is /usr/local/ on Linux To set a custom installation path do this: cmake `relative-path-to-srcdir` -DCMAKE_INSTALL_PREFIX=`preferred-install-path` Then run `make install` Signed-off-by: Sibi Siddharthan <sibisiddharthan.github@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
afa45fe5c0
commit
f1f5dff9e7
@ -65,6 +65,8 @@ project(git
|
||||
VERSION ${git_version}
|
||||
LANGUAGES C)
|
||||
|
||||
#TODO gitk git-gui gitweb
|
||||
#TODO Add pcre support
|
||||
|
||||
#macros for parsing the Makefile for sources and scripts
|
||||
macro(parse_makefile_for_sources list_var regex)
|
||||
@ -699,3 +701,50 @@ if(MSGFMT_EXE)
|
||||
endforeach()
|
||||
add_custom_target(po-gen ALL DEPENDS ${po_gen})
|
||||
endif()
|
||||
|
||||
|
||||
#to help with the install
|
||||
list(TRANSFORM git_shell_scripts PREPEND "${CMAKE_BINARY_DIR}/")
|
||||
list(TRANSFORM git_perl_scripts PREPEND "${CMAKE_BINARY_DIR}/")
|
||||
|
||||
#install
|
||||
install(TARGETS git git-shell
|
||||
RUNTIME DESTINATION bin)
|
||||
install(PROGRAMS ${CMAKE_BINARY_DIR}/git-cvsserver
|
||||
DESTINATION bin)
|
||||
|
||||
list(REMOVE_ITEM PROGRAMS_BUILT git git-shell)
|
||||
install(TARGETS ${PROGRAMS_BUILT}
|
||||
RUNTIME DESTINATION libexec/git-core)
|
||||
|
||||
set(bin_links
|
||||
git-receive-pack git-upload-archive git-upload-pack)
|
||||
|
||||
foreach(b ${bin_links})
|
||||
install(CODE "file(CREATE_LINK ${CMAKE_INSTALL_PREFIX}/bin/git ${CMAKE_INSTALL_PREFIX}/bin/${b})")
|
||||
endforeach()
|
||||
|
||||
install(CODE "file(CREATE_LINK ${CMAKE_INSTALL_PREFIX}/bin/git ${CMAKE_INSTALL_PREFIX}/libexec/git-core/git)")
|
||||
install(CODE "file(CREATE_LINK ${CMAKE_INSTALL_PREFIX}/bin/git-shell ${CMAKE_INSTALL_PREFIX}/libexec/git-core/git-shell)")
|
||||
|
||||
foreach(b ${git_links})
|
||||
string(REPLACE "${CMAKE_BINARY_DIR}" "" b ${b})
|
||||
install(CODE "file(CREATE_LINK ${CMAKE_INSTALL_PREFIX}/bin/git ${CMAKE_INSTALL_PREFIX}/libexec/git-core/${b})")
|
||||
endforeach()
|
||||
|
||||
foreach(b ${git_http_links})
|
||||
string(REPLACE "${CMAKE_BINARY_DIR}" "" b ${b})
|
||||
install(CODE "file(CREATE_LINK ${CMAKE_INSTALL_PREFIX}/libexec/git-core/git-remote-http ${CMAKE_INSTALL_PREFIX}/libexec/git-core/${b})")
|
||||
endforeach()
|
||||
|
||||
install(PROGRAMS ${git_shell_scripts} ${git_perl_scripts} ${CMAKE_BINARY_DIR}/git-p4
|
||||
DESTINATION libexec/git-core)
|
||||
|
||||
install(DIRECTORY ${CMAKE_SOURCE_DIR}/mergetools DESTINATION libexec/git-core)
|
||||
install(DIRECTORY ${CMAKE_BINARY_DIR}/perl/build/lib/ DESTINATION share/perl5
|
||||
FILES_MATCHING PATTERN "*.pm")
|
||||
install(DIRECTORY ${CMAKE_BINARY_DIR}/templates/blt/ DESTINATION share/git-core/templates)
|
||||
|
||||
if(MSGFMT_EXE)
|
||||
install(DIRECTORY ${CMAKE_BINARY_DIR}/po/build/locale DESTINATION share)
|
||||
endif()
|
||||
|
Loading…
Reference in New Issue
Block a user