-
-
Notifications
You must be signed in to change notification settings - Fork 117
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
CMake-based build system for rhash #71
base: master
Are you sure you want to change the base?
Conversation
CppDoc2 was a good utility for generating JavaDoc-style documentation from sources. Regrettably its website cppdoc.com has expired in 2016. The last accessible version is https://web.archive.org/web/20151029190831/http://www.cppdoc.com/ . We should drop cppdoc support, since it can't be downloaded now from a verified source. |
I didn't see this PR and did a very minimalist pass for CMake just to support my own needs initially. https://github.com/jrepp/RHash/tree/cmake-support @JPeterMugaas A few changes I would propose to your much better pass on CMake support: Improvements for embedding:
Consider using GLOB and file structures to cleanup the test/header-only/library use cases. Probably a bigger change and just listing the files is sufficient. |
@JPeterMugaas cmake build fails on Ubuntu:
While the old ./configure script works:
The config.log shows how ./configure has found gettext:
|
Sorry for my late reply but I wanted to do a lot more work on this to add more capabilities to the cmake-based system which I hope migh replace the configure script one of these days. Alright, I did try to prefix most of the variables. The only ones I didn't prefix are for various syntax purposes or because of some things in CMake. I did try to provide some way to make a minimalist cmake for embedding in other projects but my main focus is on a giant distribution for developer package redistribution. I did try to provide some things for a NSIS installer and I wanted to work on some tests. There's still much to do in that regard to replace the ones based on the bash shell plus I'm still hoping to replace the .sed file with a cmake script so that this stuff can be more platform independent. I also used Doxygen extensively for developer documentation in both HTML and man forms. Now this having been said, I'm not sure what to think about the Intl issue on Linux but I hope look further at this later. Hopefully, retesting might help. I would have to probably update my Archlinux Virtual Machine to test that issue. |
Alright, I did look at the documentation for the FindIntl module and this is what it said: On some platforms, such as Linux with GNU libc, the gettextfunctions are present in the C standard library and libintlis not required.
|
Hello, thank for fixing issues. |
… want to implement some tests with it. This is an idea to help get things started. Comments and testing on your system are appreciated.
1) Start adding tests for the .EXE and libraries. 2) Add support for Doxygen. This does not use the Doxyfile from original GIT RHash because We need to fill in values. This should hopefully replace cpp-doc because I can't get the source-code for that and it's disssappeared. 3) Add an application icon for building a NSIS installer with CMake. This really should be in the RHash.exe in Windows but I want to get with you all about that. The icon was stolen from a RHash website. 4) Add the original .PNG from the website we could use it in the Doxygen documentation. 5) Try to make the installer have options to support a minal lib as suggested. I did by adding several other options since the CMakeLists.txt now supports quite a number of things. 6) There's probably some things I omitted. Goodness knows I've spent on this which is why it delayed for so long. But I think it's worth it.
Embed icon and version information to .EXE's and .DLL's. This should work in Cygwin, MSYS, and MINGW if windres is available and supported by cmake. Also make the installer point to the icon in the .EXE. This should make things more intuitive in the Windows GUI as well as provide embedded copyright information in the .DLL and .EXE's.
1) Hopefully fixed Linux issue with the intl libraries. It turns out that linking to an additional library might not be required and Intl_LIBRARIES will be empty. 2) Specified MSCGEN improperly. It turns out that we need to specify tge dur wgere NSCGEB u=actyakkt us ub MSCGEN_PATH,
…se tests are roughly equivilant to the tests in the RHash/tests directory except that they are NOT based on bash.. The cmake source-code does pass these tests in Win32.
…tputting stuff to stderr even on sucesss. This was probably anticipated in the bash tests. This now works 100% on Archlinux.
Add more informative information about builds. Dump CMAKE_INSTALL_FULL_xxx vars that I needed for debugging. Handle USE_GETTEXT define for .EXE and add SYNCONF macro define. RHASH_USE_GETTEXT menu otpion now works as expected. This enables/disables intl and Gettext support (they both go hand in hand) Fix RHASH_OPENSSL_RUNTIME menu option. RHASH_TESTS_OPT_FULL - new menu option for enabling a certain test (test_all_hash_options.cmake). This corresponds to something I saw in the bash script. Only generate .rc files for SHARED_LIBS and BUILD_EXE options. Fix for dot, graphviz, and mscgen handling with Doxygen.
9d380c3
to
4d29e9a
Compare
Please do not switch to CMake as build system, as CMake does not properly work on some platforms that may be supported now. |
I think that would depend upon what version of CMake. There was a change in cmake policies in that regard starting with cmake 2.83 (or something). |
This is a big improvement upon the current custom build system. |
There's something wrong with the PR, does it change line endings or something? Its like everything has been edited Other than that, this should have been merged 2 years ago, but maybe people are willing to create a meson project for rhash now? |
start on an alternative build system. This is far from finished and I want to implement some tests with it. This is an idea to help get things started. Comments and testing on your system are appreciated.
Todo:
As always, flames, comments, and criticism are welcome.