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
WITH_NDLLS CMake option not working #143
Comments
I have also ran into this while working on the FreeBSD port and it is one of the reasons I did not want to enable build options (otherwise port would not pass tests). The most ideomatic way to deal with this in CMake is to move build of ndlls to their own subdirectories and invoke add_subdirectory conditionally. For example, this is how Clang build decides to whether or not include docs: if( CLANG_INCLUDE_DOCS )
add_subdirectory(docs)
endif() That change is quite simple, but another issue is that WITH_NDLLS is not only a list of libraries to build, but also a list of files in the build directory (there is an INSTALL statement for it in CMakeLists.txt), meaning that if we move any of the targets to its own subdirectory, then current mechanism of locating those libraries would not find it. To solve that, new CMakeLists.txt need to get their own install statements (which means that the install path needs to be figured out before CMake descends into libs directory). Another CMake idiom deriving from its use of file system structure is that target declarations (add_library, add_executable, etc) should only use files in the same directory, common sources should be compiled into static libraries. That makes CMake code easier to follow and helps with debugging. Kepping those things in mind, I have experimented with moving CMake code around and got it through CI build and tests. I replaced WITH_NDLLS with a set of "WITH" variables for different dependencies (that part can be reworked back to WITH_NDDLS, but this looks like less code to me at the moment). Code is still in my repo, I am merging latest changes in. The only issue I had with this code so far is that for "package" target it puts ndll libraries in a subdirectory (just like it would for |
Hi,
I'm trying to build neko on Gentoo/Linux amd64. I tried on v2-1-0 and master, even on virtual Arch Linux, but all caused this.
When I run these commands in the git root directory:
the last cmake command checks for all the dependencies, against what README says WITH_NDLLS is for.
CMake's output without apache installed is like this:
Or am I misunderstanding? Building neko requires all the dependencies in any case, and I just can suppress output ndlls with
WITH_NDLLS
?The text was updated successfully, but these errors were encountered: