- Timestamp:
- Jun 24, 2008, 5:36:34 PM (16 years ago)
- Location:
- CMT/HEAD
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
CMT/HEAD/ChangeLog
r460 r461 1 2008-06-24 <rybkin@lal.in2p3.fr> 362 2 3 * source/cmt_use.h: In the Package class, declare get_version_file_name () 4 to return "version.cmt", and get_version () to retrieve the package version 5 when structuring style used is `without_version_directory' by checking: 6 1) the get_version_file_name () file if available (and readable) 7 2) version statement in the package requirements file 8 * source/cmt_use.cxx: Implement and systematically use the 9 get_version_file_name (), and get_version () functions 10 * source/cmt_parser.cxx: Systematically use the implemented functions 11 * source/cmt_awk.cxx: idem 12 * source/cmt_cvs.cxx: idem 13 1 14 2008-06-22 <rybkin@lal.in2p3.fr> 361 2 15 -
CMT/HEAD/mgr/cmt_dependencies.make
r459 r461 1 1 cmt_cxx_dependencies = ../source/cmt.cxx ../source/cmt_std.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_parser.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h 2 cmt_awk_cxx_dependencies = ../source/cmt_awk.cxx ../source/cmt_std.h ../source/cmt_string.h ../source/cmt_regexp.h ../source/cmt_awk.h ../source/cmt_vector.h ../source/cmt_system.h ../source/cmt_log.h 2 cmt_awk_cxx_dependencies = ../source/cmt_awk.cxx ../source/cmt_std.h ../source/cmt_string.h ../source/cmt_regexp.h ../source/cmt_awk.h ../source/cmt_vector.h ../source/cmt_system.h ../source/cmt_log.h ../source/cmt_map.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h 3 3 cmt_branch_cxx_dependencies = ../source/cmt_branch.cxx ../source/cmt_std.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_branch.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_map.h ../source/cmt_pattern.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_tag.h ../source/cmt_symbol.h ../source/cmt_awk.h ../source/cmt_project.h ../source/cmt_cmtpath_pattern.h ../source/cmt_database.h 4 4 cmt_constituent_cxx_dependencies = ../source/cmt_constituent.cxx ../source/cmt_std.h ../source/cmt_string.h ../source/cmt_vector.h ../source/cmt_regexp.h ../source/cmt_system.h ../source/cmt.h ../source/cmt_parser.h ../source/cmt_fragment.h ../source/cmt_group.h ../source/cmt_constituent.h ../source/cmt_language.h ../source/cmt_awk.h ../source/cmt_map.h ../source/cmt_include.h ../source/cmt_script.h ../source/cmt_pattern.h ../source/cmt_scope_section.h ../source/cmt_use.h ../source/cmt_deps_builder.h ../source/cmt_generator.h ../source/cmt_branch.h ../source/cmt_tag.h ../source/cmt_symbol.h ../source/cmt_project.h ../source/cmt_cmtpath_pattern.h ../source/cmt_database.h ../source/cmt_log.h -
CMT/HEAD/source/cmt_awk.cxx
r459 r461 14 14 #include "cmt_system.h" 15 15 #include "cmt_log.h" 16 #include "cmt_use.h" 16 17 17 18 class Parser … … 697 698 vreq += CmtSystem::file_separator (); 698 699 vreq += "cmt"; 699 vreq += CmtSystem::file_separator (); 700 vreq += "version.cmt"; 701 702 if (CmtSystem::test_file (vreq)) 700 // vreq += CmtSystem::file_separator (); 701 // vreq += "version.cmt"; 702 703 // if (CmtSystem::test_file (vreq)) 704 if (CmtSystem::test_file (vreq 705 + CmtSystem::file_separator () 706 + Package::get_version_file_name ()) 707 ) 703 708 { 704 version.read (vreq); 705 int pos; 706 pos = version.find ('\n'); 707 if (pos != cmt_string::npos) version.erase (pos); 708 pos = version.find ('\r'); 709 if (pos != cmt_string::npos) version.erase (pos); 710 709 Package::get_version (version, vreq); 710 711 711 a.run (entry, version, path, true); 712 712 has_package = true; … … 876 876 if (CmtSystem::test_file (req)) 877 877 { 878 cmt_string req;879 880 req = name;881 req += CmtSystem::file_separator ();882 req += "version.cmt";883 884 878 cmt_string version; 885 if (CmtSystem::test_file (req)) 879 cmt_string v; 880 if (Package::get_version (v, name)) 886 881 { 887 version.read (req); 888 int pos; 889 pos = version.find ('\n'); 890 if (pos != cmt_string::npos) version.erase (pos); 891 pos = version.find ('\r'); 892 if (pos != cmt_string::npos) version.erase (pos); 882 version = v; 893 883 } 894 884 else … … 896 886 version = "v*"; 897 887 } 898 888 899 889 cout << package << " " << version << " " << path << endl; 900 890 -
CMT/HEAD/source/cmt_cvs.cxx
r459 r461 1912 1912 cmt_string text = version; 1913 1913 text += "\n"; 1914 text.write ("version.cmt"); 1914 // text.write ("version.cmt"); 1915 text.write (Package::get_version_file_name ()); 1915 1916 } 1916 1917 } -
CMT/HEAD/source/cmt_parser.cxx
r460 r461 852 852 break; 853 853 } 854 version_file += CmtSystem::file_separator (); 855 version_file += "version.cmt"; 856 857 if (CmtSystem::test_file (version_file)) 854 // version_file += CmtSystem::file_separator (); 855 // version_file += "version.cmt"; 856 857 // if (CmtSystem::test_file (version_file)) 858 if (CmtSystem::test_file (version_file 859 + CmtSystem::file_separator () 860 + Package::get_version_file_name ()) 861 ) 858 862 { 859 863 // … … 865 869 CmtSystem::dirname (up_dir, Me.m_current_path); 866 870 871 /* 867 872 if (Me.m_current_version.read (version_file)) 868 873 { … … 878 883 Me.m_current_version = "v*"; 879 884 CmtMessage::warning ("Could not read `" + version_file + "'." 885 " Default version `" + Me.m_current_version + "'"); 886 } 887 */ 888 cmt_string v; 889 if (Package::get_version (v, version_file)) 890 { 891 Me.m_current_version = v; 892 } 893 else 894 { 895 Me.m_current_version = "v*"; 896 CmtMessage::warning ("Structuring style used `without_version_directory'." 897 " Could not determine version in `" + version_file + "'." 880 898 " Default version `" + Me.m_current_version + "'"); 881 899 } … … 949 967 " Assuming it is package name"); 950 968 } 969 Me.m_current_package = up_branch; 970 CmtSystem::dirname (up_dir, Me.m_current_path); 971 972 cmt_string v; 973 if (Package::get_version (v, version_file)) 974 { 975 Me.m_current_version = v; 976 } 977 else 978 { 951 979 // No version descriptor 952 980 // No version directory. The version is defaulted to v* 953 981 954 Me.m_current_package = up_branch; 955 Me.m_current_version = "v*"; 956 CmtMessage::warning ("Structuring style used `without_version_directory'" 957 ", `" + version_file + "' missing." 958 " Default version `" + Me.m_current_version + "'"); 959 CmtSystem::dirname (up_dir, Me.m_current_path); 982 Me.m_current_version = "v*"; 983 CmtMessage::warning ("Structuring style used `without_version_directory'." 984 " Could not determine version in `" + version_file + "'." 985 " Default version `" + Me.m_current_version + "'"); 986 } 960 987 961 988 Me.m_current_style = no_version_style; … … 2890 2917 if (!with_version_dir) 2891 2918 { 2892 ofstream f ("version.cmt"); 2919 // ofstream f ("version.cmt"); 2920 ofstream f (Package::get_version_file_name ()); 2893 2921 if (f) 2894 2922 { … … 3237 3265 cmt_string v; 3238 3266 3239 v.read ("version.cmt"); 3267 // v.read ("version.cmt"); 3268 v.read (Package::get_version_file_name ()); 3240 3269 if (v == version) 3241 3270 { … … 3557 3586 // cerr << "Writing version file : " << version << endl; 3558 3587 3559 version.write ("version.cmt"); 3588 // version.write ("version.cmt"); 3589 version.write (Package::get_version_file_name ()); 3560 3590 } 3561 3591 -
CMT/HEAD/source/cmt_use.cxx
r459 r461 1540 1540 style = no_version_style; 1541 1541 1542 if (CmtSystem::test_file ("version.cmt")) 1543 { 1544 cmt_string v; 1545 1546 v.read ("version.cmt"); 1547 int pos; 1548 pos = v.find ('\n'); 1549 if (pos != cmt_string::npos) v.erase (pos); 1550 pos = v.find ('\r'); 1551 if (pos != cmt_string::npos) v.erase (pos); 1552 1542 cmt_string v; 1543 if (Package::get_version (v)) 1544 { 1553 1545 CompareStatus s = compare_versions (version, v); 1554 1555 1546 if (Cmt::get_debug ()) 1556 1547 { … … 4272 4263 4273 4264 4265 //---------------------------------------------------------- 4266 class VersionReader : public Awk 4267 { 4268 public: 4269 4270 VersionReader () 4271 { 4272 } 4273 4274 const cmt_string& get_version () const 4275 { 4276 return (m_version); 4277 } 4278 4279 void filter (const cmt_string& line) 4280 { 4281 CmtSystem::cmt_string_vector words; 4282 CmtSystem::split (line, " \t", words); 4283 if (words[0] == "version") 4284 { 4285 m_version = words[1]; 4286 } 4287 } 4288 4289 private: 4290 cmt_string m_version; 4291 }; 4292 4293 //---------------------------------------------------------- 4274 4294 Package* Package::find (const cmt_string& name) 4275 4295 { … … 4283 4303 } 4284 4304 4305 //---------------------------------------------------------- 4285 4306 Package* Package::add (const cmt_string& name) 4286 4307 { … … 4317 4338 } 4318 4339 4340 //---------------------------------------------------------- 4319 4341 Package::PackageVector& Package::packages () 4320 4342 { … … 4325 4347 } 4326 4348 4349 //---------------------------------------------------------- 4327 4350 Package::PackageMap& Package::package_map () 4328 4351 { … … 4333 4356 } 4334 4357 4358 //---------------------------------------------------------- 4335 4359 void Package::clear_all () 4336 4360 { … … 4342 4366 } 4343 4367 4368 //---------------------------------------------------------- 4369 bool Package::get_version (cmt_string& version, const cmt_string& path) 4370 { 4371 cmt_string version_file = path; 4372 version_file += CmtSystem::file_separator (); 4373 version_file += get_version_file_name (); 4374 if (CmtSystem::test_file (version_file)) 4375 { 4376 cmt_string v; 4377 if (v.read (version_file)) 4378 { 4379 int pos; 4380 pos = v.find ('\n'); 4381 if (pos != cmt_string::npos) v.erase (pos); 4382 pos = v.find ('\r'); 4383 if (pos != cmt_string::npos) v.erase (pos); 4384 version = v; 4385 return true; 4386 } 4387 else 4388 { 4389 CmtMessage::warning ("Could not read `" + version_file + "'."); 4390 } 4391 } 4392 4393 version_file = path; 4394 version_file += CmtSystem::file_separator (); 4395 version_file += "requirements"; 4396 cmt_string text; 4397 if (text.read (version_file)) 4398 { 4399 VersionReader reader; 4400 reader.run (text); 4401 cmt_string v = reader.get_version (); 4402 if (v != "") 4403 { 4404 version = v; 4405 return true; 4406 } 4407 } 4408 else 4409 { 4410 CmtMessage::warning ("Could not read `" + version_file + "'."); 4411 } 4412 4413 return false; 4414 } 4415 4416 //---------------------------------------------------------- 4417 const cmt_string& Package::get_version_file_name () 4418 { 4419 static const cmt_string name = "version.cmt"; 4420 4421 return (name); 4422 } 4423 4424 //---------------------------------------------------------- 4344 4425 Package::Package () : m_is_cmt (false) 4345 4426 { … … 4350 4431 } 4351 4432 4433 //---------------------------------------------------------- 4352 4434 Package::~Package () 4353 4435 { … … 4355 4437 } 4356 4438 4439 //---------------------------------------------------------- 4357 4440 const cmt_string& Package::get_name () const 4358 4441 { … … 4360 4443 } 4361 4444 4445 //---------------------------------------------------------- 4362 4446 void Package::add_use (Use* use) 4363 4447 { … … 4371 4455 } 4372 4456 4457 //---------------------------------------------------------- 4373 4458 void Package::remove_use (Use* use) 4374 4459 { … … 4396 4481 } 4397 4482 4483 //---------------------------------------------------------- 4398 4484 Use::UsePtrVector& Package::get_uses () 4399 4485 { … … 4401 4487 } 4402 4488 4489 //---------------------------------------------------------- 4403 4490 bool Package::is_cmt () 4404 4491 { … … 4406 4493 } 4407 4494 4495 //---------------------------------------------------------- 4408 4496 static void show_packages () 4409 4497 { … … 4443 4531 } 4444 4532 4533 //---------------------------------------------------------- 4445 4534 Project* Use::get_project () 4446 4535 { -
CMT/HEAD/source/cmt_use.h
r334 r461 235 235 static void clear_all (); 236 236 237 static bool get_version (cmt_string& version, const cmt_string& path = "."); 238 static const cmt_string& get_version_file_name (); 239 237 240 public: 238 241
Note: See TracChangeset
for help on using the changeset viewer.