1 // 2 // aegis - project change supervisor 3 // Copyright (C) 2012 Peter Miller 4 // 5 // This program is free software; you can redistribute it and/or modify 6 // it under the terms of the GNU General Public License as published by 7 // the Free Software Foundation; either version 3 of the License, or (at 8 // your option) any later version. 9 // 10 // This program is distributed in the hope that it will be useful, 11 // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 // General Public License for more details. 14 // 15 // You should have received a copy of the GNU General Public License along 16 // with this program. If not, see <http://www.gnu.org/licenses/>. 17 // 18 19 #ifndef AEMAKEGEN_PROCESS_ITEM_LIBDIR_H 20 #define AEMAKEGEN_PROCESS_ITEM_LIBDIR_H 21 22 #include <aemakegen/process_item.h> 23 24 /** 25 * The process_item_libdir class is used to represent 26 * the processing required for "libdir/" files. 27 */ 28 class process_item_libdir: 29 public process_item 30 { 31 public: 32 typedef aegis_shared_ptr<process_item_libdir> pointer; 33 34 /** 35 * The destructor. 36 */ 37 virtual ~process_item_libdir(); 38 39 /** 40 * The create class method is used to create new dynamically 41 * allocated instances of this class. 42 * 43 * @param filename 44 * The name of the file of interest. 45 */ 46 static pointer create(target &tgt); 47 48 protected: 49 // See base class for documentation. 50 bool condition(const nstring &filename); 51 52 // See base class for documentation. 53 void preprocess(const nstring &filename); 54 55 private: 56 /** 57 * The constructor. 58 * It is private on purpose, use the #create class method instead. 59 * 60 * @param filename 61 * The name of the file of interest. 62 */ 63 process_item_libdir(target &tgt); 64 65 /** 66 * The default constructor. 67 * Do not use. 68 */ 69 process_item_libdir(); 70 71 /** 72 * The copy constructor. 73 * Do not use. 74 * 75 * @param rhs 76 * The right hand side of the initialization. 77 */ 78 process_item_libdir(const process_item_libdir &rhs); 79 80 /** 81 * The assignment operator. 82 * Do not use. 83 * 84 * @param rhs 85 * The right hand side of the assignment. 86 */ 87 process_item_libdir &operator=(const process_item_libdir &rhs); 88 }; 89 90 // vim: set ts=8 sw=4 et : 91 #endif // AEMAKEGEN_PROCESS_ITEM_LIBDIR_H 92