| 195 | } |
| 196 | |
| 197 | void cmGraphVizWriter::ReadSettings( |
| 198 | std::string const& settingsFileName, |
| 199 | std::string const& fallbackSettingsFileName) |
| 200 | { |
| 201 | cmake cm(cmState::Role::Script); |
| 202 | cm.GetCurrentSnapshot().SetDefaultDefinitions(); |
| 203 | cmGlobalGenerator ggi(&cm); |
| 204 | cmMakefile mf(&ggi, cm.GetCurrentSnapshot()); |
| 205 | std::unique_ptr<cmLocalGenerator> lg(ggi.CreateLocalGenerator(&mf)); |
| 206 | |
| 207 | std::string inFileName = settingsFileName; |
| 208 | if (!cmSystemTools::FileExists(inFileName)) { |
| 209 | inFileName = fallbackSettingsFileName; |
| 210 | if (!cmSystemTools::FileExists(inFileName)) { |
| 211 | return; |
| 212 | } |
| 213 | } |
| 214 | |
| 215 | if (!mf.ReadListFile(inFileName)) { |
| 216 | cmSystemTools::Error("Problem opening GraphViz options file: " + |
| 217 | inFileName); |
| 218 | return; |
| 219 | } |
| 220 | |
| 221 | std::cout << "Reading GraphViz options file: " << inFileName << std::endl; |
| 222 | |
| 223 | #define set_if_set(var, cmakeDefinition) \ |
| 224 | do { \ |
| 225 | cmValue value = mf.GetDefinition(cmakeDefinition); \ |
| 226 | if (value) { \ |
| 227 | (var) = *value; \ |
| 228 | } \ |
| 229 | } while (false) |
| 230 | |
| 231 | set_if_set(this->GraphName, "GRAPHVIZ_GRAPH_NAME"); |
| 232 | set_if_set(this->GraphHeader, "GRAPHVIZ_GRAPH_HEADER"); |
| 233 | set_if_set(this->GraphNodePrefix, "GRAPHVIZ_NODE_PREFIX"); |
| 234 | |
| 235 | #define set_bool_if_set(var, cmakeDefinition) \ |
| 236 | do { \ |
| 237 | cmValue value = mf.GetDefinition(cmakeDefinition); \ |
| 238 | if (value) { \ |
| 239 | (var) = cmIsOn(*value); \ |
| 240 | } \ |
| 241 | } while (false) |
| 242 | |
| 243 | set_bool_if_set(this->GenerateForExecutables, "GRAPHVIZ_EXECUTABLES"); |
| 244 | set_bool_if_set(this->GenerateForStaticLibs, "GRAPHVIZ_STATIC_LIBS"); |
| 245 | set_bool_if_set(this->GenerateForSharedLibs, "GRAPHVIZ_SHARED_LIBS"); |
| 246 | set_bool_if_set(this->GenerateForModuleLibs, "GRAPHVIZ_MODULE_LIBS"); |
| 247 | set_bool_if_set(this->GenerateForInterfaceLibs, "GRAPHVIZ_INTERFACE_LIBS"); |
| 248 | set_bool_if_set(this->GenerateForObjectLibs, "GRAPHVIZ_OBJECT_LIBS"); |
| 249 | set_bool_if_set(this->GenerateForUnknownLibs, "GRAPHVIZ_UNKNOWN_LIBS"); |
| 250 | set_bool_if_set(this->GenerateForCustomTargets, "GRAPHVIZ_CUSTOM_TARGETS"); |
| 251 | set_bool_if_set(this->GenerateForExternals, "GRAPHVIZ_EXTERNAL_LIBS"); |
| 252 | set_bool_if_set(this->GeneratePerTarget, "GRAPHVIZ_GENERATE_PER_TARGET"); |
| 253 | set_bool_if_set(this->GenerateDependers, "GRAPHVIZ_GENERATE_DEPENDERS"); |
| 254 |
no test coverage detected