diff options
author | Ivan Zhakov <ivan@apache.org> | 2024-07-20 18:18:18 +0200 |
---|---|---|
committer | Ivan Zhakov <ivan@apache.org> | 2024-07-20 18:18:18 +0200 |
commit | 55c5d07a2d56109b7edaf399fbeabaf4dfaf6264 (patch) | |
tree | fbb3b3547a0041aaec5e01b42db4166c6087c1e1 /build | |
parent | * .github/workflows/windows.yml: Enable VCPKG artifacts caching. (diff) | |
download | apache2-55c5d07a2d56109b7edaf399fbeabaf4dfaf6264.tar.xz apache2-55c5d07a2d56109b7edaf399fbeabaf4dfaf6264.zip |
Remove awk dependency when building using CMake. Before this awk was required
for -DWITH_MODULES option.
* build/build-modules-c.cmake:
(generate_builtin_modules_c): Function to generate modules.c.
* CMakeLists.txt
(): Use generate_builtin_modules_c() instead of `awk -f build/build-modules-c.awk`
to generate modules.c file.
* README.cmake:
(Prerequisites, How to build): Do not mention awk as prerequisite.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1919413 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'build')
-rw-r--r-- | build/build-modules-c.cmake | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/build/build-modules-c.cmake b/build/build-modules-c.cmake new file mode 100644 index 0000000000..9d4ac6cc2d --- /dev/null +++ b/build/build-modules-c.cmake @@ -0,0 +1,83 @@ +# Licensed to the Apache Software Foundation (ASF) under one or more +# contributor license agreements. See the NOTICE file distributed with +# this work for additional information regarding copyright ownership. +# The ASF licenses this file to You under the Apache License, Version 2.0 +# (the "License"); you may not use this file except in compliance with +# the License. You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +function(generate_builtin_modules_c output_filename module_list) + list(PREPEND module_list "core") + + set(content "") + + string(APPEND content "/*\n") + string(APPEND content " * modules.c --- automatically generated by Apache\n") + string(APPEND content " * configuration script. DO NOT HAND EDIT!!!!!\n") + string(APPEND content " */\n") + string(APPEND content "\n") + string(APPEND content "#include \"ap_config.h\"\n") + string(APPEND content "#include \"httpd.h\"\n") + string(APPEND content "#include \"http_config.h\"\n") + string(APPEND content "\n") + + foreach(module ${module_list}) + string(APPEND content "extern module ${module}_module\;\n") + endforeach() + + string(APPEND content "\n") + string(APPEND content "/*\n") + string(APPEND content " * Modules which implicitly form the\n") + string(APPEND content " * list of activated modules on startup,\n") + string(APPEND content " * i.e. these are the modules which are\n") + string(APPEND content " * initially linked into the Apache processing\n") + string(APPEND content " * [extendable under run-time via AddModule]\n") + string(APPEND content " */\n") + + string(APPEND content "AP_DECLARE_DATA module *ap_prelinked_modules[] = {\n") + foreach(module ${module_list}) + string(APPEND content " &${module}_module,\n") + endforeach() + string(APPEND content " NULL\n") + string(APPEND content "}\;\n") + + string(APPEND content "\n") + string(APPEND content "/*\n") + string(APPEND content " * We need the symbols as strings for <IfModule> containers\n") + string(APPEND content " */\n") + string(APPEND content "\n") + string(APPEND content "ap_module_symbol_t ap_prelinked_module_symbols[] = {\n") + + foreach(module ${module_list}) + string(APPEND content " {\"${module}_module\", &${module}_module},\n") + endforeach() + + string(APPEND content " {NULL, NULL}\n") + string(APPEND content "}\;\n") + string(APPEND content "\n") + string(APPEND content "/*\n") + string(APPEND content " * Modules which initially form the\n") + string(APPEND content " * list of available modules on startup,\n") + string(APPEND content " * i.e. these are the modules which are\n") + string(APPEND content " * initially loaded into the Apache process\n") + string(APPEND content " * [extendable under run-time via LoadModule]\n") + string(APPEND content " */\n") + string(APPEND content "module *ap_preloaded_modules[] = {\n") + + foreach(module ${module_list}) + string(APPEND content " &${module}_module,\n") + endforeach() + + string(APPEND content " NULL\n") + string(APPEND content "}\;\n") + string(APPEND content "\n") + + file(WRITE ${output_filename} ${content}) +endfunction() |