I'd like to inquire whether it would be possible to incorporate CMake build logic along the lines of that defined here:
https://github.com/starseeker/tcltk/tree/master/tcl
https://github.com/starseeker/tcltk/tree/master/tk
into the main CMake source tree, and if so what work would need to be done to achieve this. The links above contain the build system work presented at the 18th Annual Tcl/Tk Conference in 2011.
The tree above uses the 8.6b2 tarballs as its baseline - in brief, the changes are:
New files:
tcl: CMake directory and contents
tcl: CMakeLists.txt
tcl/doc: CMakeLists.txt
tcl/library: CMakeLists.txt
tk: CMake directory and contents
tk: CMakeLists.txt
tk/doc: CMakeLists.txt
tk/library: CMakeLists.txt
tk/win: tkMainASCII.c
Changes:
diff -r tk8.6b2/win/rc/tk.rc tcltk/tk/win/rc/tk.rc
74c74,76
< CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "wish.exe.manifest"
---
>
> //MSVC provides a manifest file for us
> //CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "wish.exe.manifest"
diff -r tk8.6b2/win/rc/wish.rc tcltk/tk/win/rc/wish.rc
87c87,89
< CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "wish.exe.manifest"
---
> // CMake provies it's own manifest file
> //
> // CREATEPROCESS_MANIFEST_RESOURCE_ID RT_MANIFEST "wish.exe.manifest"
This would be very helpful for projects that use CMake and embed Tcl/Tk (such as BRL-CAD) and may also prove to be a good solution longer term for building on Windows (CMake supports multiple build system outputs from a single set of files.) The only file changes currently are the manifest files, and if it proves necessary to avoid changing *any* non-CMake files in Tcl/Tk to avoid disturbing pre-existing build systems it would be workable to have CMake specific versions of those files.
|