Message ID | 14ddfc17815d68f2f32aebbc4b0ecb3ce6f25dc1.1601479585.git.gitgitgadget@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | b490283d5200952b87f49ac43457da7a332b4598 |
Headers | show |
Series | CMake and Visual Studio | expand |
Hi, On Wed, 30 Sep 2020, Johannes Schindelin via GitGitGadget wrote: > From: Johannes Schindelin <johannes.schindelin@gmx.de> > > The idea of having CMake support in Git's source tree is to enable > contributors on Windows to start contributing with little effort. To > that end, we just added some sensible defaults that will let users open > the worktree in Visual Studio and start building. > > This expects the dependencies (such as zlib) to be available already, > though. If they are not available, we expect the user to run > `compat/vcbuild/vcpkg_install.bat`. > > Rather than requiring this step to be manual, detect the situation and > run it as part of the CMake configuration step. > > Note that this obviously only applies to the scenario when we want to > compile in Visual Studio (i.e. with MS Visual C), not with GCC. > Therefore, we guard this new code block behind the `MSVC` conditional. > > This concludes our journey to make it as effortless as possible to start > developing Git in Visual Studio: all the developer needs to do is to > clone Git's repository, open the worktree via `File>Open>Folder...` and > wait for CMake to finish configuring. > > Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> > > squash! cmake (Windows): initialize vcpkg/build dependencies automatically > > MSVC Aaargh! This was of course meant to be deleted after rewording the commit message :-( Sorry about that, Dscho > --- > contrib/buildsystems/CMakeLists.txt | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/contrib/buildsystems/CMakeLists.txt b/contrib/buildsystems/CMakeLists.txt > index 78b90abe5e..ebadae2271 100644 > --- a/contrib/buildsystems/CMakeLists.txt > +++ b/contrib/buildsystems/CMakeLists.txt > @@ -42,6 +42,10 @@ cmake_minimum_required(VERSION 3.14) > set(CMAKE_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/../..) > if(WIN32) > set(VCPKG_DIR "${CMAKE_SOURCE_DIR}/compat/vcbuild/vcpkg") > + if(MSVC AND NOT EXISTS ${VCPKG_DIR}) > + message("Initializing vcpkg and building the Git's dependencies (this will take a while...)") > + execute_process(COMMAND ${CMAKE_SOURCE_DIR}/compat/vcbuild/vcpkg_install.bat) > + endif() > list(APPEND CMAKE_PREFIX_PATH "${VCPKG_DIR}/installed/x64-windows") > > # In the vcpkg edition, we need this to be able to link to libcurl > -- > gitgitgadget > > >
Johannes Schindelin <Johannes.Schindelin@gmx.de> writes: >> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> >> >> squash! cmake (Windows): initialize vcpkg/build dependencies automatically >> >> MSVC > > Aaargh! This was of course meant to be deleted after rewording the commit > message :-( OK. I noticed it and what got pushed out has them removed. Hopefully we can merge this round down to 'next' after waiting for a day or two to see if anything new gets noticed. Thanks.
diff --git a/contrib/buildsystems/CMakeLists.txt b/contrib/buildsystems/CMakeLists.txt index 78b90abe5e..ebadae2271 100644 --- a/contrib/buildsystems/CMakeLists.txt +++ b/contrib/buildsystems/CMakeLists.txt @@ -42,6 +42,10 @@ cmake_minimum_required(VERSION 3.14) set(CMAKE_SOURCE_DIR ${CMAKE_CURRENT_LIST_DIR}/../..) if(WIN32) set(VCPKG_DIR "${CMAKE_SOURCE_DIR}/compat/vcbuild/vcpkg") + if(MSVC AND NOT EXISTS ${VCPKG_DIR}) + message("Initializing vcpkg and building the Git's dependencies (this will take a while...)") + execute_process(COMMAND ${CMAKE_SOURCE_DIR}/compat/vcbuild/vcpkg_install.bat) + endif() list(APPEND CMAKE_PREFIX_PATH "${VCPKG_DIR}/installed/x64-windows") # In the vcpkg edition, we need this to be able to link to libcurl