Release version 1.0.0; keep generated documentation source-derived
The project version moves to 1.0.0, which the library soname, the reported version, the test expectations, and the generated document filename all derive from. SOVERSION now matches the major version. The generated reference is built from the source and its documentation comments alone. Prose from docs/ was briefly part of the input and is removed: development notes are written and read on their own, and a generator that reproduces them adds nothing. The reference opens on a front page declared in the public header, followed by the module contract. One target builds it. Both PDF and HTML are produced by default, the finished documents land in the build tree under docs/pdf and docs/html, and the generators work in docs/tmp. The internal namespace is dpm_core, matching the artifact name as closely as a C++ identifier permits.
This commit is contained in:
@@ -139,7 +139,7 @@ void parse_config_file(dpm_ctx* ctx, const fs::path& file,
|
||||
|
||||
} // namespace
|
||||
|
||||
namespace dpmcore {
|
||||
namespace dpm_core {
|
||||
|
||||
void set_error(dpm_ctx* ctx, const std::string& msg)
|
||||
{
|
||||
@@ -169,7 +169,7 @@ void load_config_dir(dpm_ctx* ctx)
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace dpmcore
|
||||
} // namespace dpm_core
|
||||
|
||||
extern "C" {
|
||||
|
||||
@@ -199,7 +199,7 @@ dpm_ctx* dpm_open(const dpm_open_overrides* overrides)
|
||||
ctx->config_dir = with_trailing_slash(overrides->config_dir);
|
||||
}
|
||||
|
||||
dpmcore::load_config_dir(ctx);
|
||||
dpm_core::load_config_dir(ctx);
|
||||
|
||||
/* Logging: config, then override. */
|
||||
ctx->log_level = DPM_LOG_INFO;
|
||||
|
||||
@@ -70,7 +70,7 @@ void* resolve(void* handle, const char* symbol)
|
||||
|
||||
} // namespace
|
||||
|
||||
namespace dpmcore {
|
||||
namespace dpm_core {
|
||||
|
||||
std::unique_ptr<dpm_module> validate_and_load(dpm_ctx* ctx,
|
||||
const std::string& name,
|
||||
@@ -141,7 +141,7 @@ std::unique_ptr<dpm_module> validate_and_load(dpm_ctx* ctx,
|
||||
return mod;
|
||||
}
|
||||
|
||||
} // namespace dpmcore
|
||||
} // namespace dpm_core
|
||||
|
||||
extern "C" {
|
||||
|
||||
@@ -157,9 +157,9 @@ dpm_module* dpm_require(dpm_ctx* ctx, const char* name)
|
||||
}
|
||||
|
||||
std::string reason;
|
||||
auto loaded = dpmcore::validate_and_load(ctx, name, reason);
|
||||
auto loaded = dpm_core::validate_and_load(ctx, name, reason);
|
||||
if (!loaded) {
|
||||
dpmcore::set_error(ctx, std::string("module '") + name +
|
||||
dpm_core::set_error(ctx, std::string("module '") + name +
|
||||
"': " + reason);
|
||||
return nullptr;
|
||||
}
|
||||
@@ -198,7 +198,7 @@ dpm_cursor* dpm_list_modules(dpm_ctx* ctx)
|
||||
|
||||
std::error_code ec;
|
||||
if (!fs::is_directory(ctx->module_path, ec)) {
|
||||
dpmcore::set_error(ctx, "module path is not a readable directory: " +
|
||||
dpm_core::set_error(ctx, "module path is not a readable directory: " +
|
||||
ctx->module_path);
|
||||
return nullptr;
|
||||
}
|
||||
@@ -230,7 +230,7 @@ dpm_cursor* dpm_list_modules(dpm_ctx* ctx)
|
||||
mod = it->second.get();
|
||||
} else {
|
||||
std::string reason;
|
||||
auto loaded = dpmcore::validate_and_load(ctx, name, reason);
|
||||
auto loaded = dpm_core::validate_and_load(ctx, name, reason);
|
||||
if (!loaded) {
|
||||
dpm_log(ctx, DPM_LOG_WARN,
|
||||
("module '" + name + "' failed validation: " +
|
||||
|
||||
@@ -25,7 +25,7 @@
|
||||
#include <cctype>
|
||||
#include <cstdlib>
|
||||
|
||||
namespace dpmcore {
|
||||
namespace dpm_core {
|
||||
|
||||
bool parse_version(const char* s, long out[3])
|
||||
{
|
||||
@@ -60,4 +60,4 @@ bool parse_version(const char* s, long out[3])
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace dpmcore
|
||||
} // namespace dpm_core
|
||||
|
||||
Reference in New Issue
Block a user