summaryrefslogtreecommitdiffstats
path: root/mmc_updater/src/MacBundle.h
blob: 2b119d8f69960aa2a8d493976cf33d020ef17aea (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#pragma once

#include <string>

/** Class for creating minimal Mac app bundles. */
class MacBundle
{
	public:
		/** Create a MacBundle instance representing the bundle
		  * in <path>/<appName>.app
		  */
		MacBundle(const std::string& path, const std::string& appName);

		/** Create a simple Mac bundle.
		  *
		  * @param infoPlist The content of the Info.plist file
		  * @param icon The content of the app icon
		  * @param exePath The path of the file to use for the main app in the bundle.
		  */
		void create(const std::string& infoPlist,
		            const std::string& icon,
		            const std::string& exePath);
		
		/** Returns the path of the main executable within the Mac bundle. */
		std::string executablePath() const;

		/** Returns the path of the bundle */
		std::string bundlePath() const;

	private:
		std::string m_path;
		std::string m_appName;
		std::string m_exePath;
};