Skip to content

Build or Maintain

npyl edited this page Sep 7, 2018 · 24 revisions

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.

I have created a branch of conky named forConkyX which contains the xcode-project files required for the compilation of conky -and the whole project, whatsoever-.

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/ConkyX/conky-for-macOS/forConkyX"
cmake .. -G Xcode

Return to "base"

cd ../../..

Work on ManageConky

open "Manage Conky.xcworkspace"

Maintainance Tips πŸ”–

Senario #1: upstream was updated and you want to get these commits πŸ˜‹

  • (inside conky-for-macOS directory) checkout to master
  • merge upstream
  • checkout forConkyX branch
  • merge master into forConkyX
  • Recreate an xcode-project using the following command:
ccmake .. -G Xcode
# apply patches now
  • Commit changes to conky-for-macOS project
  • Then:
cd ..
git add conky-for-macOS
git commit
  • Then:
cd ..
git add ConkyX
git commit
  • Then:
open "Manage Conky.xcworkspace"
  • You should do a Product->Clean (Product->Clean Build Folder on new Xcode) (This is an amazingly necessary step sometimes, trust me)
  • You can now build (target must be ManageConky)

Senario #2: One of the frameworks used got updated

  • Install cocoapods.
  • Inside the ManageConky directory type: pod update This should update the frameworks used (AHLaunchCtl 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.sh 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 <Manage-Conky project path> <version number>

Example:

./distributeManageConky ~/Manage-Conky 0.9
Clone this wiki locally