Skip to content

Build or Maintain

npyl edited this page Jul 8, 2019 · 24 revisions

This is a guide for a ManageConky/conky-for-macOS developer/maintainer. It is not supposed to be a detailed guide on how to build MC.

Requirements πŸ†˜

Install the requirements but instead of installing Xcode command-line tools just install Xcode.

Design 🎨

ManageConky consists of the main project (ManageConky) and two subprojects: ConkyX and conky

  • ManageConky builds ConkyX which builds conky.
  • conky is bundled into ConkyX (in Resources) because the latter works as a launcher.
  • ConkyX is bundled into ManageConky (in Resources).
  • And finally, ManageConky installs everything by making symlinks to ConkyX and conky in /Applications and /usr/local/bin respectively.

There is a branch of conky-for-macOS named forConkyX which contains the xcode-project files required for the compilation of conky -and the whole project, whatsoever-.

Xcode expects to find the conky.xcodeproj file inside forConkyX directory.

Getting Started

Clone repo

git clone --recurse-submodules https://github.com/Conky-for-macOS/Manage-Conky/

Prepare a conky-for-macOS xcode project file

cd "Manage Conky"
Tools/preheatProject.command

Work on ManageConky

open "Manage Conky.xcworkspace"

Do not forget to change to your own Code Sign Identity.

Maintainance Tips πŸ”–

Senario #1: upstream conky was updated and you want to pull these updates into conky-for-macOS

  • (inside conky-for-macOS directory)
git fetch upstream  # fetch updates

git checkout master  # branch into master
git rebase upstream/master  # rebase with updates from upstream

git checkout forConkyX  # branch into forConkyX
git merge master  # merge master
  • Recreate an xcode-project using the following command:
ccmake .. -G Xcode
  • Update ConkyX after update to conky-for-macOS

cd ..
git add conky-for-macOS
git commit
  • Update ManageConky after update to ConkyX

cd ..
git add ConkyX
git commit

Senario #2: One of the pods got updated

  • Install cocoapods.
  • Inside the ManageConky directory type: pod update This should update the frameworks used (AHLaunchCtl, LzmaSDK-ObjC and Sparkle).
  • (Commit the changes)
  • You should do a Product->Clean (Product->Clean Build Folder on new Xcode) (This is an amazingly necessary step sometimes, trust me)
  • Build

These senarios are probably all you need to maintain this project.

Issue a new Release

You can use the distributeManageConky.command script provided in <ProjectRoot>/Tools.

It will build a Manage Conky.app in /tmp, package it in a .dmg, sign it using Sparkle's tool and then place it in your home directory.

Usage:

./distributeManageConky.command <version number:optional>

Example:

./distributeManageConky.command 0.9