Replaced dupeGuru XCode project with a WAF build script.

--HG--
branch : xibless
This commit is contained in:
Virgil Dupras 2012-07-28 16:22:51 -04:00
parent 6a7af81685
commit 81daef6145
8 changed files with 94 additions and 912 deletions

View File

@ -6,7 +6,8 @@ run.py
*.so
*.mo
*.pyd
.tm_*
*.waf*
.lock-waf*
*.xcodeproj/xcuserdata
*.xcodeproj/project.xcworkspace/xcuserdata
conf.json

View File

@ -13,12 +13,14 @@ from optparse import OptionParser
import shutil
import json
import importlib
import glob
from setuptools import setup, Extension
from hscommon import sphinxgen
from hscommon.build import (add_to_pythonpath, print_and_do, copy_packages, filereplace,
get_module_version, move_all, copy_sysconfig_files_for_embed, copy_all, move)
get_module_version, move_all, copy_sysconfig_files_for_embed, copy_all, move, copy,
create_osx_app_structure)
from hscommon import loc
def parse_args():
@ -69,6 +71,7 @@ def build_xibless(edition):
def build_cocoa(edition, dev):
ed = lambda s: s.format(edition)
build_xibless(edition)
build_cocoa_proxy_module()
build_cocoa_bridging_interfaces(edition)
@ -79,7 +82,7 @@ def build_cocoa(edition, dev):
os.symlink(get_python_header_folder(), 'build/PythonHeaders')
if not op.exists('build/py'):
os.mkdir('build/py')
cocoa_project_path = 'cocoa/{0}'.format(edition)
cocoa_project_path = ed('cocoa/{}')
shutil.copy(op.join(cocoa_project_path, 'dg_cocoa.py'), 'build')
specific_packages = {
'se': ['core_se'],
@ -98,22 +101,24 @@ def build_cocoa(edition, dev):
copy_sysconfig_files_for_embed('build/py')
os.chdir(cocoa_project_path)
print('Generating Info.plist')
app_version = get_module_version('core_{}'.format(edition))
app_version = get_module_version(ed('core_{}'))
filereplace('InfoTemplate.plist', 'Info.plist', version=app_version)
print("Building the XCode project")
args = ['-project dupeguru.xcodeproj']
if dev:
args.append('-configuration dev')
else:
args.append('-configuration release')
args = ' '.join(args)
os.system('xcodebuild {0}'.format(args))
os.chdir('../..')
print("Compiling with WAF")
os.chdir('..')
os.system('{0} waf configure && {0} waf'.format(sys.executable))
os.chdir('..')
print("Creating the .app folder")
image_path = ed('cocoa/{}/dupeguru.icns')
resources = [image_path, 'cocoa/base/dsa_pub.pem', 'build/dg_cocoa.py',
'build/py', 'build/help'] + glob.glob('cocoa/base/*.lproj')
frameworks = ['build/Python', 'cocoalib/Sparkle.framework']
create_osx_app_structure('build/dupeGuru.app', 'cocoa/build/dupeGuru', ed('cocoa/{}/Info.plist'),
resources, frameworks, symlink_resources=dev)
print("Creating the run.py file")
app_path = {
'se': 'cocoa/se/dupeGuru.app',
'me': 'cocoa/me/dupeGuru\\ ME.app',
'pe': 'cocoa/pe/dupeGuru\\ PE.app',
'se': 'build/dupeGuru.app',
'me': 'build/dupeGuru\\ ME.app',
'pe': 'build/dupeGuru\\ PE.app',
}[edition]
tmpl = open('run_template_cocoa.py', 'rt').read()
run_contents = tmpl.replace('{{app_path}}', app_path)
@ -158,10 +163,7 @@ def build_localizations(ui, edition):
os.makedirs(dest_lproj)
loc.po2strings(pofile, op.join(enlproj, 'Localizable.strings'), op.join(dest_lproj, 'Localizable.strings'))
pofile = op.join('cocoalib', 'locale', lang, 'LC_MESSAGES', 'cocoalib.po')
cocoalib_dest = op.join('cocoalib', lang + '.lproj', 'cocoalib.strings')
if not op.exists(op.dirname(cocoalib_dest)):
os.makedirs(op.dirname(cocoalib_dest))
loc.po2strings(pofile, op.join('cocoalib', 'en.lproj', 'cocoalib.strings'), cocoalib_dest)
loc.po2strings(pofile, op.join('cocoalib', 'en.lproj', 'cocoalib.strings'), op.join(dest_lproj, 'cocoalib.strings'))
elif ui == 'qt':
loc.compile_all_po(op.join('qtlib', 'locale'))
loc.merge_locale_dir(op.join('qtlib', 'locale'), 'locale')

View File

@ -5,7 +5,7 @@
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<string>dupeGuru</string>
<key>CFBundleHelpBookFolder</key>
<string>dupeguru_help</string>
<key>CFBundleHelpBookName</key>
@ -17,7 +17,7 @@
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>${PRODUCT_NAME}</string>
<string>dupeGuru</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleSignature</key>

View File

@ -1,875 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
CE073F6309CAE1A3005C1D2F /* help in Resources */ = {isa = PBXBuildFile; fileRef = CE073F5409CAE1A3005C1D2F /* help */; };
CE18004D14BDD837001B6329 /* Python in Frameworks */ = {isa = PBXBuildFile; fileRef = CE18004C14BDD837001B6329 /* Python */; };
CE18004F14BDD854001B6329 /* Python in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE18004C14BDD837001B6329 /* Python */; };
CE18005114BDD87B001B6329 /* py in Resources */ = {isa = PBXBuildFile; fileRef = CE18005014BDD87B001B6329 /* py */; };
CE1D091814BE0C6400CA6B8C /* ObjP.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1D091514BE0C6400CA6B8C /* ObjP.m */; };
CE1D091914BE0C6400CA6B8C /* PyStatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE1D091714BE0C6400CA6B8C /* PyStatsLabel.m */; };
CE272B5C15C31BAA0085F4CD /* PreferencesPanel_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE272B5B15C31BAA0085F4CD /* PreferencesPanel_UI.m */; };
CE275C5714BF712B00265960 /* PyDirectoryOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE275C5514BF712B00265960 /* PyDirectoryOutline.m */; };
CE275C5A14BF71DF00265960 /* PyColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CE275C5914BF71DF00265960 /* PyColumns.m */; };
CE27D3C412CCA43800859E67 /* HSAboutBox.m in Sources */ = {isa = PBXBuildFile; fileRef = CE27D3C312CCA43800859E67 /* HSAboutBox.m */; };
CE2B169C15C33EEB00F1BE29 /* MainMenu_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE2B169B15C33EEB00F1BE29 /* MainMenu_UI.m */; };
CE2EC62915BD931E00698FF3 /* DeletionOptions_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE2EC62815BD931E00698FF3 /* DeletionOptions_UI.m */; };
CE2EC62C15BD9D2C00698FF3 /* ProblemDialog_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE2EC62B15BD9D2C00698FF3 /* ProblemDialog_UI.m */; };
CE31819D13D85D9B00B6D649 /* about.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE31819913D85D9B00B6D649 /* about.xib */; };
CE31819E13D85D9B00B6D649 /* ErrorReportWindow.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE31819B13D85D9B00B6D649 /* ErrorReportWindow.xib */; };
CE381C9609914ACE003581CE /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9409914ACE003581CE /* AppDelegate.m */; };
CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CE381C9A09914ADF003581CE /* ResultWindow.m */; };
CE3A298B15BAEA600008BDB9 /* DetailsPanel_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CE3A298A15BAEA600008BDB9 /* DetailsPanel_UI.m */; };
CE3A3B4914BF19B8007898AB /* PyDetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE3A3B4814BF19B8007898AB /* PyDetailsPanel.m */; };
CE412C0D1510ECAA00484122 /* PyIgnoreListDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE412C0C1510ECAA00484122 /* PyIgnoreListDialog.m */; };
CE412C141510ED2E00484122 /* IgnoreListDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE412C131510ED2E00484122 /* IgnoreListDialog.m */; };
CE45579B0AE3BC2B005A9546 /* Sparkle.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE45579A0AE3BC2B005A9546 /* Sparkle.framework */; };
CE4557B40AE3BC50005A9546 /* Sparkle.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = CE45579A0AE3BC2B005A9546 /* Sparkle.framework */; };
CE4746D314C09C12001A66DE /* PyProblemDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE4746D214C09C12001A66DE /* PyProblemDialog.m */; };
CE5335FC142BBFAF008E5374 /* HSQuicklook.m in Sources */ = {isa = PBXBuildFile; fileRef = CE5335FB142BBFAF008E5374 /* HSQuicklook.m */; };
CE533603142BC034008E5374 /* Quartz.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE533602142BC034008E5374 /* Quartz.framework */; };
CE548CC614BF903D00D180CB /* PyPrioritizeDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE548CC314BF903D00D180CB /* PyPrioritizeDialog.m */; };
CE548CC714BF903D00D180CB /* PyPrioritizeList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE548CC514BF903D00D180CB /* PyPrioritizeList.m */; };
CE587E9A14C07BCF004CA031 /* PyOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE587E9814C07BCF004CA031 /* PyOutline.m */; };
CE587E9E14C0801F004CA031 /* PySelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE587E9D14C0801F004CA031 /* PySelectableList.m */; };
CE647E571173024A006D28BA /* ProblemDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE647E551173024A006D28BA /* ProblemDialog.m */; };
CE6DD4E7124CA3070089A48D /* ResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE6DD4E6124CA3070089A48D /* ResultTable.m */; };
CE6DD547124CAF1F0089A48D /* HSTableView.m in Sources */ = {isa = PBXBuildFile; fileRef = CE6DD546124CAF1F0089A48D /* HSTableView.m */; };
CE6E0DFE1054E9EF008D9390 /* dsa_pub.pem in Resources */ = {isa = PBXBuildFile; fileRef = CE6E0DFD1054E9EF008D9390 /* dsa_pub.pem */; };
CE76FDC4111EE37C006618EA /* HSOutlineView.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDBF111EE37C006618EA /* HSOutlineView.m */; };
CE76FDC5111EE37C006618EA /* NSIndexPathAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDC1111EE37C006618EA /* NSIndexPathAdditions.m */; };
CE76FDC6111EE37C006618EA /* NSTableViewAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDC3111EE37C006618EA /* NSTableViewAdditions.m */; };
CE76FDD4111EE3A7006618EA /* DirectoryOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDD2111EE3A7006618EA /* DirectoryOutline.m */; };
CE76FDF7111EE561006618EA /* NSEventAdditions.m in Sources */ = {isa = PBXBuildFile; fileRef = CE76FDF6111EE561006618EA /* NSEventAdditions.m */; };
CE79638612536C94008D405B /* FairwareReminder.xib in Resources */ = {isa = PBXBuildFile; fileRef = CE79638412536C94008D405B /* FairwareReminder.xib */; };
CE79638C12536F4E008D405B /* HSFairwareReminder.m in Sources */ = {isa = PBXBuildFile; fileRef = CE79638B12536F4E008D405B /* HSFairwareReminder.m */; };
CE8113EB12E5CE9A00A36C80 /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE8113E912E5CE9A00A36C80 /* Localizable.strings */; };
CE89240A14239CC30024CE4E /* PrioritizeList.m in Sources */ = {isa = PBXBuildFile; fileRef = CE89240714239CC30024CE4E /* PrioritizeList.m */; };
CE8C25CD15B9FCC100D44175 /* cocoalib.strings in Resources */ = {isa = PBXBuildFile; fileRef = CE8C25CB15B9FCC100D44175 /* cocoalib.strings */; };
CE91F216113BC22D0010360B /* StatsLabel.m in Sources */ = {isa = PBXBuildFile; fileRef = CE91F214113BC22D0010360B /* StatsLabel.m */; };
CE9777CD141F8C2500C13FB5 /* PrioritizeDialog.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9777CC141F8C2500C13FB5 /* PrioritizeDialog.m */; };
CE9FC22D14C080CF005C31FD /* PyGUIObject.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9FC22C14C080CF005C31FD /* PyGUIObject.m */; };
CE9FC23014C08622005C31FD /* PyTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9FC22F14C08622005C31FD /* PyTable.m */; };
CE9FC23314C0866F005C31FD /* PyResultTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CE9FC23214C0866F005C31FD /* PyResultTable.m */; };
CEA175CA1461E8E600776591 /* locale in Resources */ = {isa = PBXBuildFile; fileRef = CEA175C91461E8E600776591 /* locale */; };
CEA450B814BDDFD7002DAAF2 /* dg_cocoa.py in Resources */ = {isa = PBXBuildFile; fileRef = CEA450B714BDDFD7002DAAF2 /* dg_cocoa.py */; };
CEB2AF5614C49AC800F907A9 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = CEB2AF5514C49AC800F907A9 /* main.m */; };
CEBAC7B515BEF3EE0012FDB2 /* PrioritizeDialog_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEBAC7B415BEF3EE0012FDB2 /* PrioritizeDialog_UI.m */; };
CEBCE2D81573FE49000402E1 /* HSPyUtil.m in Sources */ = {isa = PBXBuildFile; fileRef = CEBCE2D71573FE49000402E1 /* HSPyUtil.m */; };
CEC3F8FC157668A300B26F0C /* DeletionOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = CEC3F8FB157668A300B26F0C /* DeletionOptions.m */; };
CEC3F8FF1576697700B26F0C /* PyDeletionOptions.m in Sources */ = {isa = PBXBuildFile; fileRef = CEC3F8FE1576697700B26F0C /* PyDeletionOptions.m */; };
CEE49F4015B9F4E1002BD78B /* HSAboutBox_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE49F3515B9F4E1002BD78B /* HSAboutBox_UI.m */; };
CEE49F4115B9F4E1002BD78B /* HSDemoReminder_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE49F3715B9F4E1002BD78B /* HSDemoReminder_UI.m */; };
CEE49F4215B9F4E1002BD78B /* HSEnterCode_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE49F3915B9F4E1002BD78B /* HSEnterCode_UI.m */; };
CEE49F4315B9F4E1002BD78B /* HSErrorReportWindow_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE49F3B15B9F4E1002BD78B /* HSErrorReportWindow_UI.m */; };
CEE49F4415B9F4E1002BD78B /* HSFairwareReminder_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE49F3D15B9F4E1002BD78B /* HSFairwareReminder_UI.m */; };
CEE49F4515B9F4E1002BD78B /* ProgressController_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE49F3F15B9F4E1002BD78B /* ProgressController_UI.m */; };
CEE5B05415C1A2B20077BA7A /* ResultWindow_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE5B05315C1A2B20077BA7A /* ResultWindow_UI.m */; };
CEE7EA130FE675C80004E467 /* DetailsPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CEE7EA120FE675C80004E467 /* DetailsPanel.m */; };
CEEACCF615BC63E200960A6A /* IgnoreListDialog_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEACCF515BC63E200960A6A /* IgnoreListDialog_UI.m */; };
CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */ = {isa = PBXBuildFile; fileRef = CEEB135109C837A2004D2330 /* dupeguru.icns */; };
CEEF2A1814C0A5A60082545A /* PyDupeGuru.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A1714C0A5A60082545A /* PyDupeGuru.m */; };
CEEF2A1D14C0A8480082545A /* PyDupeGuruBase.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A1A14C0A8480082545A /* PyDupeGuruBase.m */; };
CEEF2A1E14C0A8480082545A /* PyFairware.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A1C14C0A8480082545A /* PyFairware.m */; };
CEEF2A3C14C0B9050082545A /* HSColumns.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3114C0B9050082545A /* HSColumns.m */; };
CEEF2A3D14C0B9050082545A /* HSGUIController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3314C0B9050082545A /* HSGUIController.m */; };
CEEF2A3E14C0B9050082545A /* HSOutline.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3514C0B9050082545A /* HSOutline.m */; };
CEEF2A3F14C0B9050082545A /* HSPopUpList.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3714C0B9050082545A /* HSPopUpList.m */; };
CEEF2A4014C0B9050082545A /* HSSelectableList.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3914C0B9050082545A /* HSSelectableList.m */; };
CEEF2A4114C0B9050082545A /* HSTable.m in Sources */ = {isa = PBXBuildFile; fileRef = CEEF2A3B14C0B9050082545A /* HSTable.m */; };
CEF0ACCE12DF3C2000B32F7E /* HSRecentFiles.m in Sources */ = {isa = PBXBuildFile; fileRef = CEF0ACCD12DF3C2000B32F7E /* HSRecentFiles.m */; };
CEFC030815BDEFA5005A2559 /* DirectoryPanel_UI.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC030715BDEFA5005A2559 /* DirectoryPanel_UI.m */; };
CEFC294609C89E3D00D9F998 /* folder32.png in Resources */ = {isa = PBXBuildFile; fileRef = CEFC294509C89E3D00D9F998 /* folder32.png */; };
CEFC7F9E0FC9517500CD5728 /* Dialogs.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F8B0FC9517500CD5728 /* Dialogs.m */; };
CEFC7FA10FC9517500CD5728 /* ProgressController.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F910FC9517500CD5728 /* ProgressController.m */; };
CEFC7FA50FC9517500CD5728 /* Utils.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F9B0FC9517500CD5728 /* Utils.m */; };
CEFC7FA60FC9517500CD5728 /* ValueTransformers.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7F9D0FC9517500CD5728 /* ValueTransformers.m */; };
CEFC7FB90FC951A700CD5728 /* AppDelegateBase.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7FB20FC951A700CD5728 /* AppDelegateBase.m */; };
CEFC7FBA0FC951A700CD5728 /* DirectoryPanel.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7FB50FC951A700CD5728 /* DirectoryPanel.m */; };
CEFC7FBB0FC951A700CD5728 /* ResultWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = CEFC7FB80FC951A700CD5728 /* ResultWindow.m */; };
/* End PBXBuildFile section */
/* Begin PBXCopyFilesBuildPhase section */
CECC02B709A36E8200CC0A94 /* CopyFiles */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
CE4557B40AE3BC50005A9546 /* Sparkle.framework in CopyFiles */,
CE18004F14BDD854001B6329 /* Python in CopyFiles */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
13E42FB307B3F0F600E4EEF1 /* CoreData.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreData.framework; path = /System/Library/Frameworks/CoreData.framework; sourceTree = "<absolute>"; };
29B97324FDCFA39411CA2CEA /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
29B97325FDCFA39411CA2CEA /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = /System/Library/Frameworks/Foundation.framework; sourceTree = "<absolute>"; };
8D1107310486CEB800E47090 /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = SOURCE_ROOT; };
8D1107320486CEB800E47090 /* dupeGuru.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = dupeGuru.app; sourceTree = BUILT_PRODUCTS_DIR; };
CE00BBCE14910C8E006A717C /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../base/hy.lproj/Localizable.strings; sourceTree = "<group>"; };
CE0564B014169D9E00D3D907 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../base/zh_CN.lproj/Localizable.strings; sourceTree = "<group>"; };
CE066CEE15B9D15B007084A6 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt_BR; path = ../base/pt_BR.lproj/Localizable.strings; sourceTree = "<group>"; };
CE073F5409CAE1A3005C1D2F /* help */ = {isa = PBXFileReference; lastKnownFileType = folder; name = help; path = ../../build/help; sourceTree = "<group>"; };
CE18004C14BDD837001B6329 /* Python */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = Python; path = ../../build/Python; sourceTree = "<group>"; };
CE18005014BDD87B001B6329 /* py */ = {isa = PBXFileReference; lastKnownFileType = folder; name = py; path = ../../build/py; sourceTree = "<group>"; };
CE1D091414BE0C6400CA6B8C /* ObjP.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ObjP.h; sourceTree = "<group>"; };
CE1D091514BE0C6400CA6B8C /* ObjP.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ObjP.m; sourceTree = "<group>"; };
CE1D091614BE0C6400CA6B8C /* PyStatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyStatsLabel.h; sourceTree = "<group>"; };
CE1D091714BE0C6400CA6B8C /* PyStatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyStatsLabel.m; sourceTree = "<group>"; };
CE272B5A15C31BAA0085F4CD /* PreferencesPanel_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PreferencesPanel_UI.h; sourceTree = "<group>"; };
CE272B5B15C31BAA0085F4CD /* PreferencesPanel_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PreferencesPanel_UI.m; sourceTree = "<group>"; };
CE275C5414BF712B00265960 /* PyDirectoryOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDirectoryOutline.h; sourceTree = "<group>"; };
CE275C5514BF712B00265960 /* PyDirectoryOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDirectoryOutline.m; sourceTree = "<group>"; };
CE275C5814BF71DF00265960 /* PyColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyColumns.h; sourceTree = "<group>"; };
CE275C5914BF71DF00265960 /* PyColumns.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyColumns.m; sourceTree = "<group>"; };
CE27D3C212CCA43800859E67 /* HSAboutBox.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSAboutBox.h; path = ../../cocoalib/HSAboutBox.h; sourceTree = SOURCE_ROOT; };
CE27D3C312CCA43800859E67 /* HSAboutBox.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSAboutBox.m; path = ../../cocoalib/HSAboutBox.m; sourceTree = SOURCE_ROOT; };
CE2B169A15C33EEB00F1BE29 /* MainMenu_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MainMenu_UI.h; sourceTree = "<group>"; };
CE2B169B15C33EEB00F1BE29 /* MainMenu_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MainMenu_UI.m; sourceTree = "<group>"; };
CE2EC62715BD931E00698FF3 /* DeletionOptions_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeletionOptions_UI.h; sourceTree = "<group>"; };
CE2EC62815BD931E00698FF3 /* DeletionOptions_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DeletionOptions_UI.m; sourceTree = "<group>"; };
CE2EC62A15BD9D2C00698FF3 /* ProblemDialog_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ProblemDialog_UI.h; sourceTree = "<group>"; };
CE2EC62B15BD9D2C00698FF3 /* ProblemDialog_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ProblemDialog_UI.m; sourceTree = "<group>"; };
CE381C9409914ACE003581CE /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = SOURCE_ROOT; };
CE381C9509914ACE003581CE /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = SOURCE_ROOT; };
CE381C9A09914ADF003581CE /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.objc; path = ResultWindow.m; sourceTree = SOURCE_ROOT; };
CE381C9B09914ADF003581CE /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 5; lastKnownFileType = sourcecode.c.h; path = ResultWindow.h; sourceTree = SOURCE_ROOT; };
CE3A298915BAEA600008BDB9 /* DetailsPanel_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DetailsPanel_UI.h; sourceTree = "<group>"; };
CE3A298A15BAEA600008BDB9 /* DetailsPanel_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DetailsPanel_UI.m; sourceTree = "<group>"; };
CE3A3B4714BF19B8007898AB /* PyDetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDetailsPanel.h; sourceTree = "<group>"; };
CE3A3B4814BF19B8007898AB /* PyDetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDetailsPanel.m; sourceTree = "<group>"; };
CE412C0B1510ECAA00484122 /* PyIgnoreListDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyIgnoreListDialog.h; sourceTree = "<group>"; };
CE412C0C1510ECAA00484122 /* PyIgnoreListDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyIgnoreListDialog.m; sourceTree = "<group>"; };
CE412C121510ED2E00484122 /* IgnoreListDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = IgnoreListDialog.h; path = ../base/IgnoreListDialog.h; sourceTree = "<group>"; };
CE412C131510ED2E00484122 /* IgnoreListDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = IgnoreListDialog.m; path = ../base/IgnoreListDialog.m; sourceTree = "<group>"; };
CE45579A0AE3BC2B005A9546 /* Sparkle.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Sparkle.framework; path = ../../cocoalib/Sparkle.framework; sourceTree = SOURCE_ROOT; };
CE4746D114C09C12001A66DE /* PyProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyProblemDialog.h; sourceTree = "<group>"; };
CE4746D214C09C12001A66DE /* PyProblemDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyProblemDialog.m; sourceTree = "<group>"; };
CE5335FA142BBFAF008E5374 /* HSQuicklook.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSQuicklook.h; path = ../../cocoalib/HSQuicklook.h; sourceTree = "<group>"; };
CE5335FB142BBFAF008E5374 /* HSQuicklook.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSQuicklook.m; path = ../../cocoalib/HSQuicklook.m; sourceTree = "<group>"; };
CE533602142BC034008E5374 /* Quartz.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Quartz.framework; path = System/Library/Frameworks/Quartz.framework; sourceTree = SDKROOT; };
CE548CC214BF903D00D180CB /* PyPrioritizeDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyPrioritizeDialog.h; sourceTree = "<group>"; };
CE548CC314BF903D00D180CB /* PyPrioritizeDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyPrioritizeDialog.m; sourceTree = "<group>"; };
CE548CC414BF903D00D180CB /* PyPrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyPrioritizeList.h; sourceTree = "<group>"; };
CE548CC514BF903D00D180CB /* PyPrioritizeList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyPrioritizeList.m; sourceTree = "<group>"; };
CE587E9714C07BCF004CA031 /* PyOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyOutline.h; sourceTree = "<group>"; };
CE587E9814C07BCF004CA031 /* PyOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyOutline.m; sourceTree = "<group>"; };
CE587E9C14C0801F004CA031 /* PySelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PySelectableList.h; sourceTree = "<group>"; };
CE587E9D14C0801F004CA031 /* PySelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PySelectableList.m; sourceTree = "<group>"; };
CE647E541173024A006D28BA /* ProblemDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProblemDialog.h; path = ../base/ProblemDialog.h; sourceTree = SOURCE_ROOT; };
CE647E551173024A006D28BA /* ProblemDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProblemDialog.m; path = ../base/ProblemDialog.m; sourceTree = SOURCE_ROOT; };
CE6DD4E5124CA3070089A48D /* ResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultTable.h; path = ../base/ResultTable.h; sourceTree = SOURCE_ROOT; };
CE6DD4E6124CA3070089A48D /* ResultTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultTable.m; path = ../base/ResultTable.m; sourceTree = SOURCE_ROOT; };
CE6DD545124CAF1F0089A48D /* HSTableView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSTableView.h; path = ../../cocoalib/views/HSTableView.h; sourceTree = SOURCE_ROOT; };
CE6DD546124CAF1F0089A48D /* HSTableView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSTableView.m; path = ../../cocoalib/views/HSTableView.m; sourceTree = SOURCE_ROOT; };
CE6E0DFD1054E9EF008D9390 /* dsa_pub.pem */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = dsa_pub.pem; path = ../base/dsa_pub.pem; sourceTree = "<group>"; };
CE76FDBE111EE37C006618EA /* HSOutlineView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSOutlineView.h; sourceTree = "<group>"; };
CE76FDBF111EE37C006618EA /* HSOutlineView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSOutlineView.m; sourceTree = "<group>"; };
CE76FDC0111EE37C006618EA /* NSIndexPathAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSIndexPathAdditions.h; sourceTree = "<group>"; };
CE76FDC1111EE37C006618EA /* NSIndexPathAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSIndexPathAdditions.m; sourceTree = "<group>"; };
CE76FDC2111EE37C006618EA /* NSTableViewAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NSTableViewAdditions.h; sourceTree = "<group>"; };
CE76FDC3111EE37C006618EA /* NSTableViewAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NSTableViewAdditions.m; sourceTree = "<group>"; };
CE76FDD1111EE3A7006618EA /* DirectoryOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DirectoryOutline.h; path = ../base/DirectoryOutline.h; sourceTree = SOURCE_ROOT; };
CE76FDD2111EE3A7006618EA /* DirectoryOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryOutline.m; path = ../base/DirectoryOutline.m; sourceTree = SOURCE_ROOT; };
CE76FDF5111EE561006618EA /* NSEventAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = NSEventAdditions.h; path = ../../cocoalib/NSEventAdditions.h; sourceTree = SOURCE_ROOT; };
CE76FDF6111EE561006618EA /* NSEventAdditions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = NSEventAdditions.m; path = ../../cocoalib/NSEventAdditions.m; sourceTree = SOURCE_ROOT; };
CE79638A12536F4E008D405B /* HSFairwareReminder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareReminder.h; path = ../../cocoalib/HSFairwareReminder.h; sourceTree = SOURCE_ROOT; };
CE79638B12536F4E008D405B /* HSFairwareReminder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSFairwareReminder.m; path = ../../cocoalib/HSFairwareReminder.m; sourceTree = SOURCE_ROOT; };
CE7A6971146442010007D927 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = ../base/it.lproj/Localizable.strings; sourceTree = "<group>"; };
CE8113EA12E5CE9A00A36C80 /* en */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.strings; name = en; path = ../base/en.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; };
CE8113EC12E5CEA800A36C80 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../base/fr.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; };
CE89240614239CC30024CE4E /* PrioritizeList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrioritizeList.h; path = ../base/PrioritizeList.h; sourceTree = "<group>"; };
CE89240714239CC30024CE4E /* PrioritizeList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PrioritizeList.m; path = ../base/PrioritizeList.m; sourceTree = "<group>"; };
CE8C25CC15B9FCC100D44175 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = ../../cocoalib/en.lproj/cocoalib.strings; sourceTree = "<group>"; };
CE8C25CF15B9FCF300D44175 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../../cocoalib/cs.lproj/cocoalib.strings; sourceTree = "<group>"; };
CE8C25D015B9FCF300D44175 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../../cocoalib/de.lproj/cocoalib.strings; sourceTree = "<group>"; };
CE8C25D115B9FCF300D44175 /* fr */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = fr; path = ../../cocoalib/fr.lproj/cocoalib.strings; sourceTree = "<group>"; };
CE8C25D215B9FCF300D44175 /* hy */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = hy; path = ../../cocoalib/hy.lproj/cocoalib.strings; sourceTree = "<group>"; };
CE8C25D315B9FCF300D44175 /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = ../../cocoalib/it.lproj/cocoalib.strings; sourceTree = "<group>"; };
CE8C25D415B9FCF300D44175 /* pt_BR */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = pt_BR; path = ../../cocoalib/pt_BR.lproj/cocoalib.strings; sourceTree = "<group>"; };
CE8C25D515B9FCF300D44175 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../../cocoalib/ru.lproj/cocoalib.strings; sourceTree = "<group>"; };
CE8C25D615B9FCF300D44175 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../../cocoalib/uk.lproj/cocoalib.strings; sourceTree = "<group>"; };
CE8C25D715B9FCF300D44175 /* zh_CN */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = zh_CN; path = ../../cocoalib/zh_CN.lproj/cocoalib.strings; sourceTree = "<group>"; };
CE91F213113BC22D0010360B /* StatsLabel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = StatsLabel.h; path = ../base/StatsLabel.h; sourceTree = SOURCE_ROOT; };
CE91F214113BC22D0010360B /* StatsLabel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = StatsLabel.m; path = ../base/StatsLabel.m; sourceTree = SOURCE_ROOT; };
CE9777CB141F8C2500C13FB5 /* PrioritizeDialog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = PrioritizeDialog.h; path = ../base/PrioritizeDialog.h; sourceTree = "<group>"; };
CE9777CC141F8C2500C13FB5 /* PrioritizeDialog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = PrioritizeDialog.m; path = ../base/PrioritizeDialog.m; sourceTree = "<group>"; };
CE9FC22B14C080CF005C31FD /* PyGUIObject.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyGUIObject.h; sourceTree = "<group>"; };
CE9FC22C14C080CF005C31FD /* PyGUIObject.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyGUIObject.m; sourceTree = "<group>"; };
CE9FC22E14C08622005C31FD /* PyTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyTable.h; sourceTree = "<group>"; };
CE9FC22F14C08622005C31FD /* PyTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyTable.m; sourceTree = "<group>"; };
CE9FC23114C0866F005C31FD /* PyResultTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyResultTable.h; sourceTree = "<group>"; };
CE9FC23214C0866F005C31FD /* PyResultTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyResultTable.m; sourceTree = "<group>"; };
CEA175C91461E8E600776591 /* locale */ = {isa = PBXFileReference; lastKnownFileType = folder; name = locale; path = ../../build/locale; sourceTree = "<group>"; };
CEA450B714BDDFD7002DAAF2 /* dg_cocoa.py */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.python; name = dg_cocoa.py; path = ../../build/dg_cocoa.py; sourceTree = "<group>"; };
CEB2AF5514C49AC800F907A9 /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = ../base/main.m; sourceTree = "<group>"; };
CEB57990146ADC5100EDF7D7 /* HSConsts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSConsts.h; path = ../../cocoalib/HSConsts.h; sourceTree = "<group>"; };
CEBAC7B315BEF3EE0012FDB2 /* PrioritizeDialog_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PrioritizeDialog_UI.h; sourceTree = "<group>"; };
CEBAC7B415BEF3EE0012FDB2 /* PrioritizeDialog_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PrioritizeDialog_UI.m; sourceTree = "<group>"; };
CEBCE2D61573FE49000402E1 /* HSPyUtil.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSPyUtil.h; path = ../../cocoalib/HSPyUtil.h; sourceTree = "<group>"; };
CEBCE2D71573FE49000402E1 /* HSPyUtil.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSPyUtil.m; path = ../../cocoalib/HSPyUtil.m; sourceTree = "<group>"; };
CEBCE2DA1573FEBF000402E1 /* HSFairwareProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareProtocol.h; path = ../../cocoalib/HSFairwareProtocol.h; sourceTree = "<group>"; };
CEC3F8FA157668A300B26F0C /* DeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DeletionOptions.h; path = ../base/DeletionOptions.h; sourceTree = "<group>"; };
CEC3F8FB157668A300B26F0C /* DeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DeletionOptions.m; path = ../base/DeletionOptions.m; sourceTree = "<group>"; };
CEC3F8FD1576697700B26F0C /* PyDeletionOptions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDeletionOptions.h; sourceTree = "<group>"; };
CEC3F8FE1576697700B26F0C /* PyDeletionOptions.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDeletionOptions.m; sourceTree = "<group>"; };
CED638EC14B38D0900B88D00 /* ru */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = ru; path = ../base/ru.lproj/Localizable.strings; sourceTree = "<group>"; };
CED64CEB145EF06000572B00 /* cs */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = cs; path = ../base/cs.lproj/Localizable.strings; sourceTree = "<group>"; };
CED939551406ABB70072C4E8 /* de */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = de; path = ../base/de.lproj/Localizable.strings; sourceTree = "<group>"; };
CEE49F3415B9F4E1002BD78B /* HSAboutBox_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSAboutBox_UI.h; path = ../../cocoalib/autogen/HSAboutBox_UI.h; sourceTree = "<group>"; };
CEE49F3515B9F4E1002BD78B /* HSAboutBox_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSAboutBox_UI.m; path = ../../cocoalib/autogen/HSAboutBox_UI.m; sourceTree = "<group>"; };
CEE49F3615B9F4E1002BD78B /* HSDemoReminder_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSDemoReminder_UI.h; path = ../../cocoalib/autogen/HSDemoReminder_UI.h; sourceTree = "<group>"; };
CEE49F3715B9F4E1002BD78B /* HSDemoReminder_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSDemoReminder_UI.m; path = ../../cocoalib/autogen/HSDemoReminder_UI.m; sourceTree = "<group>"; };
CEE49F3815B9F4E1002BD78B /* HSEnterCode_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSEnterCode_UI.h; path = ../../cocoalib/autogen/HSEnterCode_UI.h; sourceTree = "<group>"; };
CEE49F3915B9F4E1002BD78B /* HSEnterCode_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSEnterCode_UI.m; path = ../../cocoalib/autogen/HSEnterCode_UI.m; sourceTree = "<group>"; };
CEE49F3A15B9F4E1002BD78B /* HSErrorReportWindow_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSErrorReportWindow_UI.h; path = ../../cocoalib/autogen/HSErrorReportWindow_UI.h; sourceTree = "<group>"; };
CEE49F3B15B9F4E1002BD78B /* HSErrorReportWindow_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSErrorReportWindow_UI.m; path = ../../cocoalib/autogen/HSErrorReportWindow_UI.m; sourceTree = "<group>"; };
CEE49F3C15B9F4E1002BD78B /* HSFairwareReminder_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSFairwareReminder_UI.h; path = ../../cocoalib/autogen/HSFairwareReminder_UI.h; sourceTree = "<group>"; };
CEE49F3D15B9F4E1002BD78B /* HSFairwareReminder_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSFairwareReminder_UI.m; path = ../../cocoalib/autogen/HSFairwareReminder_UI.m; sourceTree = "<group>"; };
CEE49F3E15B9F4E1002BD78B /* ProgressController_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProgressController_UI.h; path = ../../cocoalib/autogen/ProgressController_UI.h; sourceTree = "<group>"; };
CEE49F3F15B9F4E1002BD78B /* ProgressController_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProgressController_UI.m; path = ../../cocoalib/autogen/ProgressController_UI.m; sourceTree = "<group>"; };
CEE5B05215C1A2B20077BA7A /* ResultWindow_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ResultWindow_UI.h; sourceTree = "<group>"; };
CEE5B05315C1A2B20077BA7A /* ResultWindow_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ResultWindow_UI.m; sourceTree = "<group>"; };
CEE7EA110FE675C80004E467 /* DetailsPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DetailsPanel.h; path = ../base/DetailsPanel.h; sourceTree = SOURCE_ROOT; };
CEE7EA120FE675C80004E467 /* DetailsPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DetailsPanel.m; path = ../base/DetailsPanel.m; sourceTree = SOURCE_ROOT; };
CEEACCF415BC63E200960A6A /* IgnoreListDialog_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IgnoreListDialog_UI.h; sourceTree = "<group>"; };
CEEACCF515BC63E200960A6A /* IgnoreListDialog_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IgnoreListDialog_UI.m; sourceTree = "<group>"; };
CEEB135109C837A2004D2330 /* dupeguru.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; path = dupeguru.icns; sourceTree = "<group>"; };
CEECCD0D14C636F100A2F3A0 /* uk */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = uk; path = ../base/uk.lproj/Localizable.strings; sourceTree = "<group>"; };
CEEF2A1614C0A5A60082545A /* PyDupeGuru.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuru.h; sourceTree = "<group>"; };
CEEF2A1714C0A5A60082545A /* PyDupeGuru.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDupeGuru.m; sourceTree = "<group>"; };
CEEF2A1914C0A8480082545A /* PyDupeGuruBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyDupeGuruBase.h; sourceTree = "<group>"; };
CEEF2A1A14C0A8480082545A /* PyDupeGuruBase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyDupeGuruBase.m; sourceTree = "<group>"; };
CEEF2A1B14C0A8480082545A /* PyFairware.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PyFairware.h; sourceTree = "<group>"; };
CEEF2A1C14C0A8480082545A /* PyFairware.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PyFairware.m; sourceTree = "<group>"; };
CEEF2A3014C0B9050082545A /* HSColumns.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSColumns.h; sourceTree = "<group>"; };
CEEF2A3114C0B9050082545A /* HSColumns.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSColumns.m; sourceTree = "<group>"; };
CEEF2A3214C0B9050082545A /* HSGUIController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSGUIController.h; sourceTree = "<group>"; };
CEEF2A3314C0B9050082545A /* HSGUIController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSGUIController.m; sourceTree = "<group>"; };
CEEF2A3414C0B9050082545A /* HSOutline.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSOutline.h; sourceTree = "<group>"; };
CEEF2A3514C0B9050082545A /* HSOutline.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSOutline.m; sourceTree = "<group>"; };
CEEF2A3614C0B9050082545A /* HSPopUpList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSPopUpList.h; sourceTree = "<group>"; };
CEEF2A3714C0B9050082545A /* HSPopUpList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSPopUpList.m; sourceTree = "<group>"; };
CEEF2A3814C0B9050082545A /* HSSelectableList.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSSelectableList.h; sourceTree = "<group>"; };
CEEF2A3914C0B9050082545A /* HSSelectableList.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSSelectableList.m; sourceTree = "<group>"; };
CEEF2A3A14C0B9050082545A /* HSTable.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HSTable.h; sourceTree = "<group>"; };
CEEF2A3B14C0B9050082545A /* HSTable.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HSTable.m; sourceTree = "<group>"; };
CEEF2A4214C0BB430082545A /* Worker.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Worker.h; path = ../../cocoalib/Worker.h; sourceTree = "<group>"; };
CEF0ACCC12DF3C2000B32F7E /* HSRecentFiles.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = HSRecentFiles.h; path = ../../cocoalib/HSRecentFiles.h; sourceTree = SOURCE_ROOT; };
CEF0ACCD12DF3C2000B32F7E /* HSRecentFiles.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = HSRecentFiles.m; path = ../../cocoalib/HSRecentFiles.m; sourceTree = SOURCE_ROOT; };
CEFC030615BDEFA5005A2559 /* DirectoryPanel_UI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DirectoryPanel_UI.h; sourceTree = "<group>"; };
CEFC030715BDEFA5005A2559 /* DirectoryPanel_UI.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DirectoryPanel_UI.m; sourceTree = "<group>"; };
CEFC294509C89E3D00D9F998 /* folder32.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = folder32.png; path = ../../images/folder32.png; sourceTree = SOURCE_ROOT; };
CEFC7F8A0FC9517500CD5728 /* Dialogs.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Dialogs.h; path = ../../cocoalib/Dialogs.h; sourceTree = SOURCE_ROOT; };
CEFC7F8B0FC9517500CD5728 /* Dialogs.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Dialogs.m; path = ../../cocoalib/Dialogs.m; sourceTree = SOURCE_ROOT; };
CEFC7F900FC9517500CD5728 /* ProgressController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProgressController.h; path = ../../cocoalib/ProgressController.h; sourceTree = SOURCE_ROOT; };
CEFC7F910FC9517500CD5728 /* ProgressController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProgressController.m; path = ../../cocoalib/ProgressController.m; sourceTree = SOURCE_ROOT; };
CEFC7F9A0FC9517500CD5728 /* Utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Utils.h; path = ../../cocoalib/Utils.h; sourceTree = SOURCE_ROOT; };
CEFC7F9B0FC9517500CD5728 /* Utils.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Utils.m; path = ../../cocoalib/Utils.m; sourceTree = SOURCE_ROOT; };
CEFC7F9C0FC9517500CD5728 /* ValueTransformers.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ValueTransformers.h; path = ../../cocoalib/ValueTransformers.h; sourceTree = SOURCE_ROOT; };
CEFC7F9D0FC9517500CD5728 /* ValueTransformers.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ValueTransformers.m; path = ../../cocoalib/ValueTransformers.m; sourceTree = SOURCE_ROOT; };
CEFC7FB10FC951A700CD5728 /* AppDelegateBase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = AppDelegateBase.h; path = ../base/AppDelegateBase.h; sourceTree = SOURCE_ROOT; };
CEFC7FB20FC951A700CD5728 /* AppDelegateBase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = AppDelegateBase.m; path = ../base/AppDelegateBase.m; sourceTree = SOURCE_ROOT; };
CEFC7FB30FC951A700CD5728 /* Consts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Consts.h; path = ../base/Consts.h; sourceTree = SOURCE_ROOT; };
CEFC7FB40FC951A700CD5728 /* DirectoryPanel.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DirectoryPanel.h; path = ../base/DirectoryPanel.h; sourceTree = SOURCE_ROOT; };
CEFC7FB50FC951A700CD5728 /* DirectoryPanel.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = DirectoryPanel.m; path = ../base/DirectoryPanel.m; sourceTree = SOURCE_ROOT; };
CEFC7FB70FC951A700CD5728 /* ResultWindow.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ResultWindow.h; path = ../base/ResultWindow.h; sourceTree = SOURCE_ROOT; };
CEFC7FB80FC951A700CD5728 /* ResultWindow.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ResultWindow.m; path = ../base/ResultWindow.m; sourceTree = SOURCE_ROOT; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
8D11072E0486CEB800E47090 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
CE18004D14BDD837001B6329 /* Python in Frameworks */,
CE533603142BC034008E5374 /* Quartz.framework in Frameworks */,
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
CE45579B0AE3BC2B005A9546 /* Sparkle.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
080E96DDFE201D6D7F000001 /* DGSE */ = {
isa = PBXGroup;
children = (
CE381C9509914ACE003581CE /* AppDelegate.h */,
CE381C9409914ACE003581CE /* AppDelegate.m */,
CE381C9B09914ADF003581CE /* ResultWindow.h */,
CE381C9A09914ADF003581CE /* ResultWindow.m */,
);
name = DGSE;
sourceTree = "<group>";
};
1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */ = {
isa = PBXGroup;
children = (
CE18004C14BDD837001B6329 /* Python */,
CE45579A0AE3BC2B005A9546 /* Sparkle.framework */,
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
CE533602142BC034008E5374 /* Quartz.framework */,
);
name = "Linked Frameworks";
sourceTree = "<group>";
};
1058C7A2FEA54F0111CA2CBB /* Other Frameworks */ = {
isa = PBXGroup;
children = (
29B97324FDCFA39411CA2CEA /* AppKit.framework */,
13E42FB307B3F0F600E4EEF1 /* CoreData.framework */,
29B97325FDCFA39411CA2CEA /* Foundation.framework */,
);
name = "Other Frameworks";
sourceTree = "<group>";
};
19C28FACFE9D520D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
8D1107320486CEB800E47090 /* dupeGuru.app */,
);
name = Products;
sourceTree = "<group>";
};
29B97314FDCFA39411CA2CEA /* dupeguru */ = {
isa = PBXGroup;
children = (
080E96DDFE201D6D7F000001 /* DGSE */,
CEFC7FB00FC9518F00CD5728 /* dgbase */,
CE1D091314BE0C6400CA6B8C /* autogen */,
CEFC7F890FC9513600CD5728 /* cocoalib */,
29B97317FDCFA39411CA2CEA /* Resources */,
29B97323FDCFA39411CA2CEA /* Frameworks */,
19C28FACFE9D520D11CA2CBB /* Products */,
);
name = dupeguru;
sourceTree = "<group>";
};
29B97317FDCFA39411CA2CEA /* Resources */ = {
isa = PBXGroup;
children = (
CEA450B714BDDFD7002DAAF2 /* dg_cocoa.py */,
CE18005014BDD87B001B6329 /* py */,
CEA175C91461E8E600776591 /* locale */,
CE073F5409CAE1A3005C1D2F /* help */,
CEFC294309C89E0000D9F998 /* images */,
CEEB135109C837A2004D2330 /* dupeguru.icns */,
8D1107310486CEB800E47090 /* Info.plist */,
CE8113E912E5CE9A00A36C80 /* Localizable.strings */,
CE6E0DFD1054E9EF008D9390 /* dsa_pub.pem */,
);
name = Resources;
sourceTree = "<group>";
};
29B97323FDCFA39411CA2CEA /* Frameworks */ = {
isa = PBXGroup;
children = (
1058C7A0FEA54F0111CA2CBB /* Linked Frameworks */,
1058C7A2FEA54F0111CA2CBB /* Other Frameworks */,
);
name = Frameworks;
sourceTree = "<group>";
};
CE1D091314BE0C6400CA6B8C /* autogen */ = {
isa = PBXGroup;
children = (
CE2B169A15C33EEB00F1BE29 /* MainMenu_UI.h */,
CE2B169B15C33EEB00F1BE29 /* MainMenu_UI.m */,
CE272B5A15C31BAA0085F4CD /* PreferencesPanel_UI.h */,
CE272B5B15C31BAA0085F4CD /* PreferencesPanel_UI.m */,
CEE5B05215C1A2B20077BA7A /* ResultWindow_UI.h */,
CEE5B05315C1A2B20077BA7A /* ResultWindow_UI.m */,
CEBAC7B315BEF3EE0012FDB2 /* PrioritizeDialog_UI.h */,
CEBAC7B415BEF3EE0012FDB2 /* PrioritizeDialog_UI.m */,
CEFC030615BDEFA5005A2559 /* DirectoryPanel_UI.h */,
CEFC030715BDEFA5005A2559 /* DirectoryPanel_UI.m */,
CE2EC62A15BD9D2C00698FF3 /* ProblemDialog_UI.h */,
CE2EC62B15BD9D2C00698FF3 /* ProblemDialog_UI.m */,
CE3A298915BAEA600008BDB9 /* DetailsPanel_UI.h */,
CE3A298A15BAEA600008BDB9 /* DetailsPanel_UI.m */,
CEEACCF415BC63E200960A6A /* IgnoreListDialog_UI.h */,
CEEACCF515BC63E200960A6A /* IgnoreListDialog_UI.m */,
CE2EC62715BD931E00698FF3 /* DeletionOptions_UI.h */,
CE2EC62815BD931E00698FF3 /* DeletionOptions_UI.m */,
CE9FC22B14C080CF005C31FD /* PyGUIObject.h */,
CE9FC22C14C080CF005C31FD /* PyGUIObject.m */,
CE275C5814BF71DF00265960 /* PyColumns.h */,
CE275C5914BF71DF00265960 /* PyColumns.m */,
CE587E9714C07BCF004CA031 /* PyOutline.h */,
CE587E9814C07BCF004CA031 /* PyOutline.m */,
CE587E9C14C0801F004CA031 /* PySelectableList.h */,
CE587E9D14C0801F004CA031 /* PySelectableList.m */,
CE9FC22E14C08622005C31FD /* PyTable.h */,
CE9FC22F14C08622005C31FD /* PyTable.m */,
CE3A3B4714BF19B8007898AB /* PyDetailsPanel.h */,
CE3A3B4814BF19B8007898AB /* PyDetailsPanel.m */,
CE275C5414BF712B00265960 /* PyDirectoryOutline.h */,
CE275C5514BF712B00265960 /* PyDirectoryOutline.m */,
CE548CC214BF903D00D180CB /* PyPrioritizeDialog.h */,
CE548CC314BF903D00D180CB /* PyPrioritizeDialog.m */,
CE548CC414BF903D00D180CB /* PyPrioritizeList.h */,
CE548CC514BF903D00D180CB /* PyPrioritizeList.m */,
CE4746D114C09C12001A66DE /* PyProblemDialog.h */,
CE4746D214C09C12001A66DE /* PyProblemDialog.m */,
CE412C0B1510ECAA00484122 /* PyIgnoreListDialog.h */,
CE412C0C1510ECAA00484122 /* PyIgnoreListDialog.m */,
CEC3F8FD1576697700B26F0C /* PyDeletionOptions.h */,
CEC3F8FE1576697700B26F0C /* PyDeletionOptions.m */,
CE9FC23114C0866F005C31FD /* PyResultTable.h */,
CE9FC23214C0866F005C31FD /* PyResultTable.m */,
CE1D091614BE0C6400CA6B8C /* PyStatsLabel.h */,
CE1D091714BE0C6400CA6B8C /* PyStatsLabel.m */,
CE1D091414BE0C6400CA6B8C /* ObjP.h */,
CE1D091514BE0C6400CA6B8C /* ObjP.m */,
CEEF2A1614C0A5A60082545A /* PyDupeGuru.h */,
CEEF2A1714C0A5A60082545A /* PyDupeGuru.m */,
CEEF2A1914C0A8480082545A /* PyDupeGuruBase.h */,
CEEF2A1A14C0A8480082545A /* PyDupeGuruBase.m */,
CEEF2A1B14C0A8480082545A /* PyFairware.h */,
CEEF2A1C14C0A8480082545A /* PyFairware.m */,
);
name = autogen;
path = ../autogen;
sourceTree = "<group>";
};
CE76FDBD111EE37C006618EA /* views */ = {
isa = PBXGroup;
children = (
CE6DD545124CAF1F0089A48D /* HSTableView.h */,
CE6DD546124CAF1F0089A48D /* HSTableView.m */,
CE76FDBE111EE37C006618EA /* HSOutlineView.h */,
CE76FDBF111EE37C006618EA /* HSOutlineView.m */,
CE76FDC0111EE37C006618EA /* NSIndexPathAdditions.h */,
CE76FDC1111EE37C006618EA /* NSIndexPathAdditions.m */,
CE76FDC2111EE37C006618EA /* NSTableViewAdditions.h */,
CE76FDC3111EE37C006618EA /* NSTableViewAdditions.m */,
);
name = views;
path = ../../cocoalib/views;
sourceTree = SOURCE_ROOT;
};
CE76FDC7111EE38E006618EA /* controllers */ = {
isa = PBXGroup;
children = (
CEEF2A3014C0B9050082545A /* HSColumns.h */,
CEEF2A3114C0B9050082545A /* HSColumns.m */,
CEEF2A3214C0B9050082545A /* HSGUIController.h */,
CEEF2A3314C0B9050082545A /* HSGUIController.m */,
CEEF2A3414C0B9050082545A /* HSOutline.h */,
CEEF2A3514C0B9050082545A /* HSOutline.m */,
CEEF2A3614C0B9050082545A /* HSPopUpList.h */,
CEEF2A3714C0B9050082545A /* HSPopUpList.m */,
CEEF2A3814C0B9050082545A /* HSSelectableList.h */,
CEEF2A3914C0B9050082545A /* HSSelectableList.m */,
CEEF2A3A14C0B9050082545A /* HSTable.h */,
CEEF2A3B14C0B9050082545A /* HSTable.m */,
);
name = controllers;
path = ../../cocoalib/controllers;
sourceTree = SOURCE_ROOT;
};
CEE49F3315B9F4BA002BD78B /* autogen */ = {
isa = PBXGroup;
children = (
CEE49F3415B9F4E1002BD78B /* HSAboutBox_UI.h */,
CEE49F3515B9F4E1002BD78B /* HSAboutBox_UI.m */,
CEE49F3615B9F4E1002BD78B /* HSDemoReminder_UI.h */,
CEE49F3715B9F4E1002BD78B /* HSDemoReminder_UI.m */,
CEE49F3815B9F4E1002BD78B /* HSEnterCode_UI.h */,
CEE49F3915B9F4E1002BD78B /* HSEnterCode_UI.m */,
CEE49F3A15B9F4E1002BD78B /* HSErrorReportWindow_UI.h */,
CEE49F3B15B9F4E1002BD78B /* HSErrorReportWindow_UI.m */,
CEE49F3C15B9F4E1002BD78B /* HSFairwareReminder_UI.h */,
CEE49F3D15B9F4E1002BD78B /* HSFairwareReminder_UI.m */,
CEE49F3E15B9F4E1002BD78B /* ProgressController_UI.h */,
CEE49F3F15B9F4E1002BD78B /* ProgressController_UI.m */,
);
name = autogen;
sourceTree = "<group>";
};
CEFC294309C89E0000D9F998 /* images */ = {
isa = PBXGroup;
children = (
CEFC294509C89E3D00D9F998 /* folder32.png */,
);
name = images;
sourceTree = "<group>";
};
CEFC7F890FC9513600CD5728 /* cocoalib */ = {
isa = PBXGroup;
children = (
CEE49F3315B9F4BA002BD78B /* autogen */,
CE76FDC7111EE38E006618EA /* controllers */,
CE76FDBD111EE37C006618EA /* views */,
CE8C25CB15B9FCC100D44175 /* cocoalib.strings */,
CE76FDF5111EE561006618EA /* NSEventAdditions.h */,
CE76FDF6111EE561006618EA /* NSEventAdditions.m */,
CEB57990146ADC5100EDF7D7 /* HSConsts.h */,
CEFC7F8A0FC9517500CD5728 /* Dialogs.h */,
CEFC7F8B0FC9517500CD5728 /* Dialogs.m */,
CEBCE2DA1573FEBF000402E1 /* HSFairwareProtocol.h */,
CE79638A12536F4E008D405B /* HSFairwareReminder.h */,
CE79638B12536F4E008D405B /* HSFairwareReminder.m */,
CE27D3C212CCA43800859E67 /* HSAboutBox.h */,
CE27D3C312CCA43800859E67 /* HSAboutBox.m */,
CEF0ACCC12DF3C2000B32F7E /* HSRecentFiles.h */,
CEF0ACCD12DF3C2000B32F7E /* HSRecentFiles.m */,
CE5335FA142BBFAF008E5374 /* HSQuicklook.h */,
CE5335FB142BBFAF008E5374 /* HSQuicklook.m */,
CEEF2A4214C0BB430082545A /* Worker.h */,
CEFC7F900FC9517500CD5728 /* ProgressController.h */,
CEFC7F910FC9517500CD5728 /* ProgressController.m */,
CEFC7F9A0FC9517500CD5728 /* Utils.h */,
CEFC7F9B0FC9517500CD5728 /* Utils.m */,
CEBCE2D61573FE49000402E1 /* HSPyUtil.h */,
CEBCE2D71573FE49000402E1 /* HSPyUtil.m */,
CEFC7F9C0FC9517500CD5728 /* ValueTransformers.h */,
CEFC7F9D0FC9517500CD5728 /* ValueTransformers.m */,
);
name = cocoalib;
sourceTree = "<group>";
};
CEFC7FB00FC9518F00CD5728 /* dgbase */ = {
isa = PBXGroup;
children = (
CE6DD4E5124CA3070089A48D /* ResultTable.h */,
CE6DD4E6124CA3070089A48D /* ResultTable.m */,
CE91F213113BC22D0010360B /* StatsLabel.h */,
CE91F214113BC22D0010360B /* StatsLabel.m */,
CE76FDD1111EE3A7006618EA /* DirectoryOutline.h */,
CE76FDD2111EE3A7006618EA /* DirectoryOutline.m */,
CEFC7FB10FC951A700CD5728 /* AppDelegateBase.h */,
CEFC7FB20FC951A700CD5728 /* AppDelegateBase.m */,
CEFC7FB30FC951A700CD5728 /* Consts.h */,
CEE7EA110FE675C80004E467 /* DetailsPanel.h */,
CEE7EA120FE675C80004E467 /* DetailsPanel.m */,
CEFC7FB40FC951A700CD5728 /* DirectoryPanel.h */,
CEFC7FB50FC951A700CD5728 /* DirectoryPanel.m */,
CEFC7FB70FC951A700CD5728 /* ResultWindow.h */,
CEFC7FB80FC951A700CD5728 /* ResultWindow.m */,
CE647E541173024A006D28BA /* ProblemDialog.h */,
CE647E551173024A006D28BA /* ProblemDialog.m */,
CE412C121510ED2E00484122 /* IgnoreListDialog.h */,
CE412C131510ED2E00484122 /* IgnoreListDialog.m */,
CE9777CB141F8C2500C13FB5 /* PrioritizeDialog.h */,
CE9777CC141F8C2500C13FB5 /* PrioritizeDialog.m */,
CE89240614239CC30024CE4E /* PrioritizeList.h */,
CE89240714239CC30024CE4E /* PrioritizeList.m */,
CEC3F8FA157668A300B26F0C /* DeletionOptions.h */,
CEC3F8FB157668A300B26F0C /* DeletionOptions.m */,
CEB2AF5514C49AC800F907A9 /* main.m */,
);
name = dgbase;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
8D1107260486CEB800E47090 /* dupeguru */ = {
isa = PBXNativeTarget;
buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "dupeguru" */;
buildPhases = (
8D1107290486CEB800E47090 /* Resources */,
8D11072C0486CEB800E47090 /* Sources */,
8D11072E0486CEB800E47090 /* Frameworks */,
CECC02B709A36E8200CC0A94 /* CopyFiles */,
);
buildRules = (
);
dependencies = (
);
name = dupeguru;
productInstallPath = "$(HOME)/Applications";
productName = dupeguru;
productReference = 8D1107320486CEB800E47090 /* dupeGuru.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
29B97313FDCFA39411CA2CEA /* Project object */ = {
isa = PBXProject;
attributes = {
BuildIndependentTargetsInParallel = NO;
LastUpgradeCheck = 0440;
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "dupeguru" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
Japanese,
French,
German,
en,
fr,
de,
zh_CN,
cs,
it,
hy,
ru,
uk,
pt_BR,
);
mainGroup = 29B97314FDCFA39411CA2CEA /* dupeguru */;
projectDirPath = "";
projectRoot = "";
targets = (
8D1107260486CEB800E47090 /* dupeguru */,
);
};
/* End PBXProject section */
/* Begin PBXResourcesBuildPhase section */
8D1107290486CEB800E47090 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
CE073F6309CAE1A3005C1D2F /* help in Resources */,
CEEB135209C837A2004D2330 /* dupeguru.icns in Resources */,
CEFC294609C89E3D00D9F998 /* folder32.png in Resources */,
CE6E0DFE1054E9EF008D9390 /* dsa_pub.pem in Resources */,
CE79638612536C94008D405B /* FairwareReminder.xib in Resources */,
CE8113EB12E5CE9A00A36C80 /* Localizable.strings in Resources */,
CE31819D13D85D9B00B6D649 /* about.xib in Resources */,
CE31819E13D85D9B00B6D649 /* ErrorReportWindow.xib in Resources */,
CEA175CA1461E8E600776591 /* locale in Resources */,
CE18005114BDD87B001B6329 /* py in Resources */,
CEA450B814BDDFD7002DAAF2 /* dg_cocoa.py in Resources */,
CE8C25CD15B9FCC100D44175 /* cocoalib.strings in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D11072C0486CEB800E47090 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
CE381C9609914ACE003581CE /* AppDelegate.m in Sources */,
CE381C9C09914ADF003581CE /* ResultWindow.m in Sources */,
CEFC7F9E0FC9517500CD5728 /* Dialogs.m in Sources */,
CEFC7FA10FC9517500CD5728 /* ProgressController.m in Sources */,
CEFC7FA50FC9517500CD5728 /* Utils.m in Sources */,
CEFC7FA60FC9517500CD5728 /* ValueTransformers.m in Sources */,
CEFC7FB90FC951A700CD5728 /* AppDelegateBase.m in Sources */,
CEFC7FBA0FC951A700CD5728 /* DirectoryPanel.m in Sources */,
CEFC7FBB0FC951A700CD5728 /* ResultWindow.m in Sources */,
CEE7EA130FE675C80004E467 /* DetailsPanel.m in Sources */,
CE76FDC4111EE37C006618EA /* HSOutlineView.m in Sources */,
CE76FDC5111EE37C006618EA /* NSIndexPathAdditions.m in Sources */,
CE76FDC6111EE37C006618EA /* NSTableViewAdditions.m in Sources */,
CE76FDD4111EE3A7006618EA /* DirectoryOutline.m in Sources */,
CE76FDF7111EE561006618EA /* NSEventAdditions.m in Sources */,
CE91F216113BC22D0010360B /* StatsLabel.m in Sources */,
CE647E571173024A006D28BA /* ProblemDialog.m in Sources */,
CE6DD4E7124CA3070089A48D /* ResultTable.m in Sources */,
CE6DD547124CAF1F0089A48D /* HSTableView.m in Sources */,
CE79638C12536F4E008D405B /* HSFairwareReminder.m in Sources */,
CE27D3C412CCA43800859E67 /* HSAboutBox.m in Sources */,
CEF0ACCE12DF3C2000B32F7E /* HSRecentFiles.m in Sources */,
CE9777CD141F8C2500C13FB5 /* PrioritizeDialog.m in Sources */,
CE89240A14239CC30024CE4E /* PrioritizeList.m in Sources */,
CE5335FC142BBFAF008E5374 /* HSQuicklook.m in Sources */,
CE1D091814BE0C6400CA6B8C /* ObjP.m in Sources */,
CE1D091914BE0C6400CA6B8C /* PyStatsLabel.m in Sources */,
CE3A3B4914BF19B8007898AB /* PyDetailsPanel.m in Sources */,
CE275C5714BF712B00265960 /* PyDirectoryOutline.m in Sources */,
CE275C5A14BF71DF00265960 /* PyColumns.m in Sources */,
CE548CC614BF903D00D180CB /* PyPrioritizeDialog.m in Sources */,
CE548CC714BF903D00D180CB /* PyPrioritizeList.m in Sources */,
CE587E9A14C07BCF004CA031 /* PyOutline.m in Sources */,
CE587E9E14C0801F004CA031 /* PySelectableList.m in Sources */,
CE9FC22D14C080CF005C31FD /* PyGUIObject.m in Sources */,
CE9FC23014C08622005C31FD /* PyTable.m in Sources */,
CE9FC23314C0866F005C31FD /* PyResultTable.m in Sources */,
CE4746D314C09C12001A66DE /* PyProblemDialog.m in Sources */,
CEEF2A1814C0A5A60082545A /* PyDupeGuru.m in Sources */,
CEEF2A1D14C0A8480082545A /* PyDupeGuruBase.m in Sources */,
CEEF2A1E14C0A8480082545A /* PyFairware.m in Sources */,
CEEF2A3C14C0B9050082545A /* HSColumns.m in Sources */,
CEEF2A3D14C0B9050082545A /* HSGUIController.m in Sources */,
CEEF2A3E14C0B9050082545A /* HSOutline.m in Sources */,
CEEF2A3F14C0B9050082545A /* HSPopUpList.m in Sources */,
CEEF2A4014C0B9050082545A /* HSSelectableList.m in Sources */,
CEEF2A4114C0B9050082545A /* HSTable.m in Sources */,
CEB2AF5614C49AC800F907A9 /* main.m in Sources */,
CE412C0D1510ECAA00484122 /* PyIgnoreListDialog.m in Sources */,
CE412C141510ED2E00484122 /* IgnoreListDialog.m in Sources */,
CEBCE2D81573FE49000402E1 /* HSPyUtil.m in Sources */,
CEC3F8FC157668A300B26F0C /* DeletionOptions.m in Sources */,
CEC3F8FF1576697700B26F0C /* PyDeletionOptions.m in Sources */,
CEE49F4015B9F4E1002BD78B /* HSAboutBox_UI.m in Sources */,
CEE49F4115B9F4E1002BD78B /* HSDemoReminder_UI.m in Sources */,
CEE49F4215B9F4E1002BD78B /* HSEnterCode_UI.m in Sources */,
CEE49F4315B9F4E1002BD78B /* HSErrorReportWindow_UI.m in Sources */,
CEE49F4415B9F4E1002BD78B /* HSFairwareReminder_UI.m in Sources */,
CEE49F4515B9F4E1002BD78B /* ProgressController_UI.m in Sources */,
CE3A298B15BAEA600008BDB9 /* DetailsPanel_UI.m in Sources */,
CEEACCF615BC63E200960A6A /* IgnoreListDialog_UI.m in Sources */,
CE2EC62915BD931E00698FF3 /* DeletionOptions_UI.m in Sources */,
CE2EC62C15BD9D2C00698FF3 /* ProblemDialog_UI.m in Sources */,
CEFC030815BDEFA5005A2559 /* DirectoryPanel_UI.m in Sources */,
CEBAC7B515BEF3EE0012FDB2 /* PrioritizeDialog_UI.m in Sources */,
CEE5B05415C1A2B20077BA7A /* ResultWindow_UI.m in Sources */,
CE272B5C15C31BAA0085F4CD /* PreferencesPanel_UI.m in Sources */,
CE2B169C15C33EEB00F1BE29 /* MainMenu_UI.m in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
CE31819913D85D9B00B6D649 /* about.xib */ = {
isa = PBXVariantGroup;
children = (
);
name = about.xib;
path = /Users/hsoft/src/dupeguru/cocoalib/xib;
sourceTree = "<absolute>";
};
CE31819B13D85D9B00B6D649 /* ErrorReportWindow.xib */ = {
isa = PBXVariantGroup;
children = (
);
name = ErrorReportWindow.xib;
path = /Users/hsoft/src/dupeguru/cocoalib/xib;
sourceTree = "<absolute>";
};
CE79638412536C94008D405B /* FairwareReminder.xib */ = {
isa = PBXVariantGroup;
children = (
);
name = FairwareReminder.xib;
path = /Users/hsoft/src/dupeguru/cocoalib/xib;
sourceTree = "<absolute>";
};
CE8113E912E5CE9A00A36C80 /* Localizable.strings */ = {
isa = PBXVariantGroup;
children = (
CE8113EA12E5CE9A00A36C80 /* en */,
CE8113EC12E5CEA800A36C80 /* fr */,
CED939551406ABB70072C4E8 /* de */,
CE0564B014169D9E00D3D907 /* zh_CN */,
CED64CEB145EF06000572B00 /* cs */,
CE7A6971146442010007D927 /* it */,
CE00BBCE14910C8E006A717C /* hy */,
CED638EC14B38D0900B88D00 /* ru */,
CEECCD0D14C636F100A2F3A0 /* uk */,
CE066CEE15B9D15B007084A6 /* pt_BR */,
);
name = Localizable.strings;
sourceTree = SOURCE_ROOT;
};
CE8C25CB15B9FCC100D44175 /* cocoalib.strings */ = {
isa = PBXVariantGroup;
children = (
CE8C25CC15B9FCC100D44175 /* en */,
CE8C25CF15B9FCF300D44175 /* cs */,
CE8C25D015B9FCF300D44175 /* de */,
CE8C25D115B9FCF300D44175 /* fr */,
CE8C25D215B9FCF300D44175 /* hy */,
CE8C25D315B9FCF300D44175 /* it */,
CE8C25D415B9FCF300D44175 /* pt_BR */,
CE8C25D515B9FCF300D44175 /* ru */,
CE8C25D615B9FCF300D44175 /* uk */,
CE8C25D715B9FCF300D44175 /* zh_CN */,
);
name = cocoalib.strings;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
C01FCF4C08A954540054247B /* release */ = {
isa = XCBuildConfiguration;
buildSettings = {
DEPLOYMENT_LOCATION = YES;
DEPLOYMENT_POSTPROCESSING = YES;
DSTROOT = /;
GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(PROJECT_DIR)";
PRODUCT_NAME = dupeGuru;
WRAPPER_EXTENSION = app;
};
name = release;
};
C01FCF5008A954540054247B /* release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(ARCHS_STANDARD_32_64_BIT)";
FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../../cocoalib\"";
GCC_C_LANGUAGE_STANDARD = c99;
HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../build/PythonHeaders\"";
LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.6;
SDKROOT = macosx10.7;
};
name = release;
};
CE85E84F111AF63D00187B0D /* dev */ = {
isa = XCBuildConfiguration;
buildSettings = {
ARCHS = "$(NATIVE_ARCH_ACTUAL)";
FRAMEWORK_SEARCH_PATHS = "\"$(SRCROOT)/../../cocoalib\"";
GCC_C_LANGUAGE_STANDARD = c99;
HEADER_SEARCH_PATHS = "\"$(SRCROOT)/../../build/PythonHeaders\"";
LD_RUNPATH_SEARCH_PATHS = "@executable_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.6;
SDKROOT = macosx10.7;
};
name = dev;
};
CE85E850111AF63D00187B0D /* dev */ = {
isa = XCBuildConfiguration;
buildSettings = {
DEPLOYMENT_LOCATION = YES;
DEPLOYMENT_POSTPROCESSING = YES;
DSTROOT = /;
INFOPLIST_FILE = Info.plist;
INSTALL_PATH = "$(PROJECT_DIR)";
PRODUCT_NAME = dupeGuru;
WRAPPER_EXTENSION = app;
};
name = dev;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "dupeguru" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C01FCF4C08A954540054247B /* release */,
CE85E850111AF63D00187B0D /* dev */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = release;
};
C01FCF4E08A954540054247B /* Build configuration list for PBXProject "dupeguru" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C01FCF5008A954540054247B /* release */,
CE85E84F111AF63D00187B0D /* dev */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = release;
};
/* End XCConfigurationList section */
};
rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
}

View File

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<Workspace
version = "1.0">
<FileRef
location = "self:dupeguru.xcodeproj">
</FileRef>
</Workspace>

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded</key>
<true/>
</dict>
</plist>

BIN
cocoa/waf vendored Executable file

Binary file not shown.

69
cocoa/wscript Normal file
View File

@ -0,0 +1,69 @@
#!/usr/bin/env python
import os
import os.path as op
top = '.'
out = 'build'
def options(opt):
opt.load('compiler_c python')
def configure(conf):
# We use clang to compile our app
conf.env.CC = 'clang'
# WAF has a "pyembed" feature allowing us to automatically find Python and compile by linking
# to it. The problem is that because we made a copy of the Python library to mangle with its
# "install name", we don't actually want to link to our installed python, but to our mangled
# Python. The line below tells the "pyembed" WAF feature to look in ../build for Python.
conf.env.LIBPATH_PYEMBED = op.abspath('../build')
# I did a lot of fiddling-around, but I didn't find how to tell WAF the Python library name
# to look for without making the whole compilation process fail, so I just create a symlink
# with the name WAF is looking for.
if not op.exists('../build/libpython3.2.dylib'):
os.symlink('../build/Python', '../build/libpython3.2.dylib')
# The rest is standard WAF code that you can find the the python and macapp demos.
conf.load('compiler_c python')
conf.check_python_version((3,2,0))
conf.check_python_headers()
conf.env.FRAMEWORK_COCOA = 'Cocoa'
conf.env.ARCH_COCOA = ['i386', 'x86_64']
# Add cocoalib dir to the framework search path so we can find Sparkle.
conf.env.CFLAGS = ['-F'+op.abspath('../cocoalib')]
conf.env.LINKFLAGS = ['-F'+op.abspath('../cocoalib')]
def build(ctx):
# What do we compile?
cocoalib_node = ctx.srcnode.find_dir('..').find_dir('cocoalib')
cocoalib_folders = ['autogen', 'controllers', 'views']
cocoalib_includes = [cocoalib_node] + [cocoalib_node.find_dir(folder) for folder in cocoalib_folders]
cocoalib_uses = ['NSEventAdditions', 'Dialogs', 'HSAboutBox', 'HSFairwareReminder', 'Utils',
'HSPyUtil', 'ProgressController', 'HSRecentFiles', 'HSQuicklook', 'ValueTransformers',
'views/HSTableView', 'views/HSOutlineView', 'views/NSIndexPathAdditions',
'views/NSTableViewAdditions',
'controllers/HSColumns', 'controllers/HSGUIController', 'controllers/HSTable',
'controllers/HSOutline', 'controllers/HSPopUpList', 'controllers/HSSelectableList']
cocoalib_src = [cocoalib_node.find_node(usename + '.m') for usename in cocoalib_uses] + cocoalib_node.ant_glob('autogen/*.m')
project_folders = ['autogen', 'base', 'se']
project_src = sum([ctx.srcnode.ant_glob('%s/*.m' % folder) for folder in project_folders], [])
# Compile
ctx.program(
# "pyembed" takes care of the include and linking stuff to compile an app that embed Python.
features = 'c cprogram pyembed',
target = ctx.bldnode.make_node("dupeGuru"),
source = cocoalib_src + project_src,
includes = project_folders + cocoalib_includes,
use = 'COCOA',
# Because our python lib's install name is "@rpath/Python", we need to set the executable's
# rpath. Fortunately, WAF supports it and we just need to supply the "rpath" argument.
rpath = '@executable_path/../Frameworks',
framework = ['Sparkle', 'Quartz'],
)
from waflib import TaskGen
@TaskGen.extension('.m')
def m_hook(self, node):
"""Alias .m files to be compiled the same as .c files, gcc will do the right thing."""
return self.create_compiled_task('c', node)