outcome write_build_config::output_definition_macro
(const astring &embedded_value, astring &accumulator)
{
-// FUNCDEF("output_definition_macro");
+ FUNCDEF("output_definition_macro");
//LOG(astring("into output def with: ") + embedded_value);
variable_tokenizer t;
t.parse(embedded_value);
if (write_header) {
// we actually want to blast out a new file.
byte_filer build_header(filename, "wb");
- if (!build_header.good())
- non_continuable_error(static_class_name(), func, astring("failed to create "
- "build header file in ") + build_header.filename());
- build_header.write(new_contents);
- LOG(astring(static_class_name()) + ": wrote config to "
- + build_header.filename());
+ if (!build_header.good()) {
+ continuable_error(static_class_name(), func, astring("could not create "
+ "build header file in ") + build_header.name());
+ return false;
+ } else {
+ build_header.write(new_contents);
+ LOG(astring(static_class_name()) + ": wrote config to "
+ + build_header.name());
+ }
} else {
// nothing has changed.
// LOG(astring(static_class_name()) + ": config already up to date in "
SETUP_CONSOLE_LOGGER; // override the file_logger from app_shell.
// find our build ini file.
- astring repodir = environment::get("REPOSITORY_DIR");
+ astring repodir = environment::get("FEISTY_MEOW_APEX");
// the below code should never be needed for a properly configured build.
#ifdef __WIN32__
// find our storage area for the build headers. we know a couple build
// configurations by now, but this should really be coming out of a config
// file instead.
- astring library_directory = repodir + "/source/lib_src/library";
- if (!filename(library_directory).good()) {
- library_directory = repodir + "/source/core/library";
- if (!filename(library_directory).good()) {
- library_directory = repodir + "/libraries/library";
- if (!filename(library_directory).good()) {
- library_directory = repodir + "/../../libraries/library";
- if (!filename(library_directory).good()) {
- non_continuable_error(static_class_name(), func,
- astring("failed to locate the library folder storing the generated files."));
- }
- }
- }
+ astring versions_directory = environment::get("FEISTY_MEOW_GENERATED_STORE");
+ // we keep our version files one level below the top of the generated store.
+ versions_directory += "/versions";
+ if (!filename(versions_directory).good()) {
+ non_continuable_error(static_class_name(), func,
+ astring("failed to locate the library folder storing the generated files."));
}
// these are very specific paths, but they really are where we expect to
// see the headers.
- astring cfg_header_filename = library_directory + "/"
- "__build_configuration.h";
- astring ver_header_filename = library_directory + "/"
- "__build_version.h";
+ astring cfg_header_filename = versions_directory + "/__build_configuration.h";
+ astring ver_header_filename = versions_directory + "/__build_version.h";
// open the ini file for reading.
byte_filer ini(fname, "r");
if (!ini.good())
non_continuable_error(static_class_name(), func, astring("failed to open "
- "build configuration file for reading at ") + ini.filename());
+ "build configuration file for reading at ") + ini.name());
//hmmm: parameterize the build ini thing above!
// now we build strings that represents the output files we want to create.
astring buffer;
while (!ini.eof()) {
int chars = ini.getline(buffer, MAX_LINE_SIZE);
- if (!chars) continue; // hmmm.
+ if (!chars) continue; // hmmm: what does no chars mean?
variable_tokenizer t;
t.parse(buffer);
LOG(astring("failed writing output file ") + ver_header_filename);
}
+//NO, not any more // now make a copy into the library folder, for when we release a production version.
+// astring library_directory = repodir + "/nucleus/library";
+// astring cfg_header_copy = library_directory + "/__build_configuration.h";
+// astring ver_header_copy = library_directory + "/__build_version.h";
+// if (!write_output_file(cfg_header_copy, cfg_accumulator)) {
+// LOG(astring("skipping copy due to read-only issue on output file: ") + cfg_header_copy);
+// }
+// if (!write_output_file(ver_header_copy, ver_accumulator)) {
+// LOG(astring("skipping copy due to read-only issue on output file: ") + ver_header_copy);
+// }
+
return 0;
}
// static dependencies found by buildor_gen_deps.sh:
#include <application/application_shell.cpp>
#include <application/command_line.cpp>
+ #include <application/windoze_helper.cpp>
#include <basis/astring.cpp>
#include <basis/common_outcomes.cpp>
#include <basis/environment.cpp>
+ #include <basis/guards.cpp>
#include <basis/mutex.cpp>
#include <basis/utf_conversion.cpp>
#include <configuration/application_configuration.cpp>