On Wed, Jun 12, 2024 at 5:37 AM Timofey Zhakov <t...@chemodax.net> wrote:
> > 2.
> > gen-make.py accepts --with-PKG=... options like the following, but all
> > options should be passed to cmake -B again. Why CMakeLists.txt is
> > generated instead of adding directly CMakeLists.txt, in the patch?
>
> That's a good question. I decided to just generate the CMake files
> based on build.conf. I think this approach is great because we can
> keep vcnet project files and Unix Makefiles until the CMake can fully
> replace them. The dependency searching is delegated to the CMake, so
> the CMakeLists.txt file can be generated from the release.py script
> and put into release tar-ball like 'configure', because it would not
> contain any paths and options. Additionally, we can also someday just
> simply put the generated CMakeLists.txt file into the repository,
> cut-off the gen-make build system, and use CMake as the main build
> system.

Thanks for the explanation. That makes sense. Adding CMakeLists.txt file
to release tarball seems to be good to me.

> 1. You don't need to pass the options to the gen-make command, because
> the dependency searching is done via CMake, so the options are ignored.
> 2. Instead of specifying each include dir and library path, you could
> just specify the CMAKE_INSTALL_PREFIX variable to a path where the
> dependencies are installed.

I try to use CMAKE_INSTALL_PREFIX variable. However, I think CMakeLists.txt
should have all options corresponding to the --with-PKG of gen-make.py.

Just tried with the following commands:
[[[
cmake.exe ^
  -B "C:/usr/src/subversion/trunk-py312/out" ^
  -D CMAKE_BUILD_TYPE=Release ^
  -D CMAKE_PREFIX_PATH=C:/usr/apps/vcpkg/installed/x64-windows-release ^
  -D BUILD_SHARED_LIBS=ON ^
  -D SVN_SQLITE_USE_AMALGAMATION=OFF ^
  -D SVN_USE_INTERNAL_LZ4=ON ^
  -D SVN_USE_INTERNAL_UTF8PROC=ON ^
  -D APR_INCLUDE_DIR=C:/usr/src/subversion/win64-vs16/httpd/include ^
  -D APR_LIBRARY=C:/usr/src/subversion/win64-vs16/httpd/lib/libapr-1.lib ^
  -D APRUTIL_INCLUDE_DIR=C:/usr/src/subversion/win64-vs16/httpd/include ^
  -D APRUTIL_LIBRARY=C:/usr/src/subversion/win64-vs16/httpd/lib/libaprutil-1.lib
^
  -D SQLite3_INCLUDE_DIR=C:/usr/apps/vcpkg/installed/x64-windows-static/include
^
  -D 
SQLite3_LIBRARY=C:/usr/apps/vcpkg/installed/x64-windows-static/lib/sqlite3.lib
^
  || exit/b 1

cmake.exe ^
  --build "C:/usr/src/subversion/trunk-py312/out" ^
  --config Release ^
  --parallel --verbose ^
  -- ^
  -clp:ShowCommandLine -fl -flp:logfile=msbuild.log ^
  || exit/b 1
]]

But I encountered many "unresolved external symbol __imp_htonl" errors.

[[[
     6>checksum.obj : error LNK2019: unresolved external symbol
__imp_htonl referenced in function close_handler
[C:\usr\src\subversion\trunk-py312\out\libsvn_subr.vcxproj]
]]]

It seems to be caused by missing ws2_32.lib for the linking. I guess
`gen_cmake.py` needs methods like `get_static_win_depends` and
`get_linked_win_depends` in `gen_win.py`? Have you got success to
build on your Windows environment with cmake?

-- 
Jun Omae <jun6...@gmail.com> (大前 潤)

Reply via email to