Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/i-rinat/nginx-cmake
CMake port of nginx build scripts
https://github.com/i-rinat/nginx-cmake
cmake nginx
Last synced: 3 months ago
JSON representation
CMake port of nginx build scripts
- Host: GitHub
- URL: https://github.com/i-rinat/nginx-cmake
- Owner: i-rinat
- License: mit
- Created: 2016-11-20T00:47:04.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2021-06-22T19:25:52.000Z (over 3 years ago)
- Last Synced: 2024-10-09T19:47:22.921Z (3 months ago)
- Topics: cmake, nginx
- Language: CMake
- Size: 28.3 KB
- Stars: 23
- Watchers: 5
- Forks: 16
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
nginx-cmake
-----------Sometimes you need to integrate Nginx build into a larger project. If
that project uses CMake, you have two options. Either try to wrap
native Nginx build system using ExternalProject_Add(), or to rewrite
build steps in CMake language.Former is easier at start, but you lose control over that build part.
Incremental builds become fragile, as CMake dependency extractor is
not working for external projects.Latter is a lot harder, but what you get is uniform build scripts, all
in CMake. It's more reliable, and produces way less of clutter on a
screen during build.This repository contains solution in the second way. Scripts in
CMake. There are:* (outdated) direct rewrite of Nginx's build system in
[/direct-rewrite](/direct-rewrite);
* tracing script approach in [/tracing-script](/tracing-script).Direct rewrite was a first attempt to make a CMake build script by
manually reimplementing Nginx's build scripts. It targeted Nginx
1.11.6 and Linux, with other OS support dropped right away. That
script most probably won't work for other Nginx versions, and
definitely won't work on an OS other than GNU/Linux. There is also no
dynamic modules support code.Tracing script is a hack that by intercepting compiler (`CC` and `CXX`
variables) learns what files to compile and what objects and libraries
to link. There are more detailed explanations inside the script.