diff options
author | Clinton Stimpson <clinton@elemtech.com> | 2014-12-19 19:30:22 (GMT) |
---|---|---|
committer | Clinton Stimpson <clinton@elemtech.com> | 2014-12-22 18:32:10 (GMT) |
commit | e42da30782785a02f0fabc385d14ac8f561af602 (patch) | |
tree | e7b0c84a14098a50d8af69ac211dda8218f58ec6 /Source/cmMachO.h | |
parent | cd7bde80bf3c3e141a92058ad033833066da509b (diff) | |
download | CMake-e42da30782785a02f0fabc385d14ac8f561af602.zip CMake-e42da30782785a02f0fabc385d14ac8f561af602.tar.gz CMake-e42da30782785a02f0fabc385d14ac8f561af602.tar.bz2 |
Mach-O: Add Mach-O parser for OS X and iOS.
This parser also supports fat binaries which archive multiple
Mach-O binaries.
Diffstat (limited to 'Source/cmMachO.h')
-rw-r--r-- | Source/cmMachO.h | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/Source/cmMachO.h b/Source/cmMachO.h new file mode 100644 index 0000000..f06f8de --- /dev/null +++ b/Source/cmMachO.h @@ -0,0 +1,51 @@ +/*============================================================================ + CMake - Cross Platform Makefile Generator + Copyright 2000-2009 Kitware, Inc., Insight Software Consortium + + Distributed under the OSI-approved BSD License (the "License"); + see accompanying file Copyright.txt for details. + + This software is distributed WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License for more information. +============================================================================*/ +#ifndef cmMachO_h +#define cmMachO_h + +#if !defined(CMAKE_USE_MACH_PARSER) +# error "This file may be included only if CMAKE_USE_MACH_PARSER is enabled." +#endif + +class cmMachOInternal; + +/** \class cmMachO + * \brief Executable and Link Format (Mach-O) parser. + */ +class cmMachO +{ +public: + /** Construct with the name of the Mach-O input file to parse. */ + cmMachO(const char* fname); + + /** Destruct. */ + ~cmMachO(); + + /** Get the error message if any. */ + std::string const& GetErrorMessage() const; + + /** Boolean conversion. True if the Mach-O file is valid. */ + operator bool() const { return this->Valid(); } + + /** Get Install name from binary **/ + bool GetInstallName(std::string& install_name); + + /** Print human-readable information about the Mach-O file. */ + void PrintInfo(std::ostream& os) const; + +private: + friend class cmMachOInternal; + bool Valid() const; + cmMachOInternal* Internal; +}; + +#endif |