• Diff for "C++Compiling"
  • Immutable Page
  • Info
  • Attachments
Differences between revisions 13 and 14
Revision 13 as of 2009-02-10 04:17:22
Size: 4882
Editor: c-67-174-177-80
Comment:
Revision 14 as of 2009-03-19 11:21:34
Size: 4846
Editor: CPE-58-161-137-105
Comment: New buildsystem == New guide
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
=== Building and Installing Compiz++ === === Building and Installing Compiz 0.9.x ===
Line 4: Line 4:
=== Obtain the source ===
Line 6: Line 5:
The source code can be downloaded from git. We'll demonstrate how to install compiz, bcop libcompizconfig, compizconfig-python, ccsm and an example plugin in that order. It is noteworthy that only a select few plugins have been ported for compiz++ compatibility so far. Important notes about cmake: Choose a location in which to store the code that does not contain spaces or any questionable characters. Compiz++ will be built in a different location than where the code is actually contained. After you begin, do not move or rename this directory because it may cause future problems when updating or uninstalling. That said, here we go. == Building Compiz 0.9.x ==
Line 8: Line 7:
1) Grab the source using git
{{{
mkdir -p /usr/local/src/compiz; cd /usr/local/src/compiz
git clone git://anongit.freedesktop.org/git/xorg/app/compiz compiz++
git clone git://anongit.compiz-fusion.org/fusion/libraries/bcop bcop++
git clone git://anongit.compiz-fusion.org/fusion/compizconfig/libcompizconfig libcompizconfig++
git clone git://anongit.compiz-fusion.org/fusion/compizconfig/compizconfig-python compizconfig-python++
git clone git://anongit.compiz-fusion.org/fusion/compizconfig/ccsm ccsm++}}}
2) You must switch to the compiz++ branch for each repo you clone. From each directory do the following
{{{
git checkout -b compiz++ --track origin/compiz++}}}
3) Create a directory in which to build the source and run cmake
{{{
mkdir -p /usr/local/src/compiz/compiz_build; cd /usr/local/src/compiz/compiz_build
cmake -DCMAKE_INSTALL_PREFIX=/opt/compiz++ /usr/local/src/compiz/compiz++}}}
4) After cmake succeeds (meaning all dependencies were met) compile and install
{{{
make
sudo make install}}}
5) Build and install bcop
{{{
cd /usr/local/src/compiz/bcop++
./autogen.sh --prefix=/opt/compiz++
./configure --prefix=/opt/compiz++
make
sudo make install}}}
6) Now that compiz and bcop are installed, we'll set some environment variables so we can build libcompizconfig and other components
{{{
export LD_LIBRARY_PATH=/opt/compiz++/lib/
export PKG_CONFIG_PATH=/opt/compiz++/lib/pkgconfig:/opt/compiz++/share/pkgconfig}}}
7) Build and install libcompizconfig
{{{
cd /usr/local/src/compiz/libcompizconfig++
./autogen.sh --prefix=/opt/compiz++
./configure --prefix=/opt/compiz++
make
sudo make install}}}
8) Build compizconfig-python and ccsm. NOTE: compizconfig-python needs to be rebuilt to work with the compiz++ branch of libcompizconfig but has no changes in the source specific to compiz++, so there is no compiz++ branch. CCSM does not have a compiz++ branch either nor does it need rebuilding but it can't hurt.
{{{
cd /usr/local/src/compiz/compizconfig-python++
./autogen.sh --prefix=/opt/compiz++
./configure --prefix=/opt/compiz++
make
sudo make install
The 0.9.x development series (previously known as compiz++) is a drastic rework
of compiz core and plugins. It also has a much changed buildsystem and hence
it must be built in a specific way. We hope to have some kind of automated tool
to do this in the future.
Line 53: Line 12:
cd /usr/local/src/compiz/ccsm++
sudo python setup.py install --prefix=/opt/compiz++}}}
9) Build any additional plugins, alternatively setting BUILD_GLOBAL and installing as root to install into PREFIX as opposed to ~/.compiz
{{{
mkdir -p /usr/local/src/compiz/plugins; cd /usr/local/src/compiz/plugins
git clone git://anongit.compiz-fusion.org/users/smspillaz/example example++
cd example++
git checkout origin/compiz++
make
BUILD_GLOBAL=true sudo -E make install}}}
10) Run compiz and ccsm. NOTE: Make sure any previous decorator processes are killed before starting compiz++. If you have compiz installed as well, it may be necessary to disable window decoration, start compiz++, then renable it to insure the correct verion of the plugin is loaded.
{{{
LD_LIBRARY_PATH=/opt/compiz++/lib/ /opt/compiz++/bin/compiz --replace ccp
PYTHONPATH=/opt/compiz++/lib/python2.5/site-packages /opt/compiz++/bin/ccsm}}}
Core:
1. $ git clone git://anongit.compiz-fusion.org/compiz/core compiz (checkout core into compiz directory)
2. $ cd compiz
3. $ mkdir build (Building in the source directory is not supported)
4. $ cd build
5. $ cmake .. -DCMAKE_INSTALL_PREFIX=[where do you want compiz installed if not /usr/lib]
This last command will configure the build. There are also other build variables that can be set with -D[variable]=[...].
You can also use ccmake to get a more interactive configuration system.
Line 68: Line 21:
=== Build System Switches === Available Compiz cmake variables:
COMPIZ_DEFAULT_PLUGINS : default active plugin list (comma separated) that is added to the core xml/gconf schema file.
COMPIZ_DISABLE_PLUGIN_[PLUGIN NAME] : set it to On to disable building of the plugin
COMPIZ_INSTALL_GCONF_SCHEMA_DIR : directory where the gconf schema files should be installed
USE_(GCONF|GNOME|GNOME_KEYBINDINGS|GTK|METACITY|KDE4) : set it to false to disable build of the specified feature
Line 70: Line 27:
See the current configuration by running ccmake . from the build directory after running cmake at least once. By default the following compiz++ switches are enabled:
{{{
-DUSE_GCONF=false
-DUSE_GNOME=false
-DUSE_GNOME_KEYBINDINGS=false
-DUSE_GTK=false
-DUSE_KDE4=false
-DUSE_METACITY=false}}}
6. $ make (build)
7. $ [sudo] make install (install)
8. $ sudo make findcompiz_install
This install the FindCompiz.cmake module into the cmake module directory.
This does only to be done once, if we don't improve this module in the future

Plugins:

Currently all already ported plugins are in compiz++ branches of the normal plugin repositiores.
We will make these branches the master branches and move plugins into a new directory in the near future.

1. $ git clone git://anongit.compiz-fusion.org/fusion/plugins/[plugin] (Checkout a already ported plugin)
2. $ cd [plugin]
3. $ git checkout --track -b compiz++ origin/compiz++ (checkout the compiz++ branch)
4. $ mkdir build
5. $ cd build
5.5 If you want, you can install the plugin globally. This is required for
plugins that are used by other plugins:
   $ export BUILD_GLOBAL=true cmake .. or cmake .. -DCOMPIZ_PLUGIN_INSTALL_TYPE="compiz"
INSTEAD of step 6.
5.7 If you are using a prefix other than /usr/local and have another compiz
installation, you will need to do
   $ cmake .. -DCMAKE_INSTALL_PREFIX=[/path/to/prefix]
INSTEAD of step 6. Just add this argument if you are doing step 5.5 as well.
6. $ cmake .. (configure the plugin)

The plugin will be installed into you home directory unless you do step 5.5.
7. $ make
8. $ [sudo] -E make install

If you want to compile more plugins at once:
1. Repeat the steps 1-3 from above for each plugin
2. $ cp [your compiz checkout]/cmake/all_plugins_in_folder_example-CMakeLists.txt CMakeLists.txt (copy our all plugin cmake build file)
3. $ mkdir build (create a build directory for all plugins)
3.5 If you want, you can install the plugin globally. This is required for
plugins that are used by other plugins:
   $ export BUILD_GLOBAL=true cmake .. or cmake .. -DCOMPIZ_PLUGIN_INSTALL_TYPE="compiz"
INSTEAD of step 4.
3.7 If you are using a prefix other than /usr/local and have another compiz
installation, you will need to do
   $ cmake .. -DCMAKE_INSTALL_PREFIX=[/path/to/prefix]
INSTEAD of step 4. Just add this argument if you are doing step 5.5 as well.
4. $ cmake ..
5. $ make
6. $ [sudo] make install

The install of the plugin may fail, if you have another version (0.8.x/0.7.x) of compiz installed. In this case pkg-config might pick the wrong compiz.pc file. There are several ways to fix this:
1. Delete the other compiz.pc (Do this only if you don't want to build any of the old compiz plugins/packages anymore)
2. Put the new compiz prefix before the old one into you PKG_CONFIG_PATH environment variable
3. If the new installation prefix is not already in your PKG_CONFIG_PATH environment variable you can use the CMAKE_INSTALL_PREFIX cmake variable also to build plugins.

Building and Installing Compiz 0.9.x

This is a preliminary 'rough' guide explaining how to compile and install compiz++ to a non standard prefix. This assumes you are a developer, know exactly what you're doing or do not mind breaking your system. For sake of simplicity we'll assume the prefix /opt/compiz++/ and the source will be contained and built in /usr/local/src/ but other paths work too (both paths can be in your home directory if you prefer). Make sure your regular user has write access to the source directory (do not build the source as root). The dependency list is changing and will be added later. You will need at least cmake, boost devel and git packages installed. Refer to the dep list here to get an idea of what other packages might need to be installed.

Building Compiz 0.9.x

The 0.9.x development series (previously known as compiz++) is a drastic rework of compiz core and plugins. It also has a much changed buildsystem and hence it must be built in a specific way. We hope to have some kind of automated tool to do this in the future.

Core: 1. $ git clone git://anongit.compiz-fusion.org/compiz/core compiz (checkout core into compiz directory) 2. $ cd compiz 3. $ mkdir build (Building in the source directory is not supported) 4. $ cd build 5. $ cmake .. -DCMAKE_INSTALL_PREFIX=[where do you want compiz installed if not /usr/lib] This last command will configure the build. There are also other build variables that can be set with -D[variable]=[...]. You can also use ccmake to get a more interactive configuration system.

Available Compiz cmake variables: COMPIZ_DEFAULT_PLUGINS : default active plugin list (comma separated) that is added to the core xml/gconf schema file. COMPIZ_DISABLE_PLUGIN_[PLUGIN NAME] : set it to On to disable building of the plugin COMPIZ_INSTALL_GCONF_SCHEMA_DIR : directory where the gconf schema files should be installed USE_(GCONF|GNOME|GNOME_KEYBINDINGS|GTK|METACITY|KDE4) : set it to false to disable build of the specified feature

6. $ make (build) 7. $ [sudo] make install (install) 8. $ sudo make findcompiz_install This install the FindCompiz.cmake module into the cmake module directory. This does only to be done once, if we don't improve this module in the future

Plugins:

Currently all already ported plugins are in compiz++ branches of the normal plugin repositiores. We will make these branches the master branches and move plugins into a new directory in the near future.

1. $ git clone git://anongit.compiz-fusion.org/fusion/plugins/[plugin] (Checkout a already ported plugin) 2. $ cd [plugin] 3. $ git checkout --track -b compiz++ origin/compiz++ (checkout the compiz++ branch) 4. $ mkdir build 5. $ cd build 5.5 If you want, you can install the plugin globally. This is required for plugins that are used by other plugins:

  • $ export BUILD_GLOBAL=true cmake .. or cmake .. -DCOMPIZ_PLUGIN_INSTALL_TYPE="compiz"

INSTEAD of step 6. 5.7 If you are using a prefix other than /usr/local and have another compiz installation, you will need to do

  • $ cmake .. -DCMAKE_INSTALL_PREFIX=[/path/to/prefix]

INSTEAD of step 6. Just add this argument if you are doing step 5.5 as well. 6. $ cmake .. (configure the plugin)

The plugin will be installed into you home directory unless you do step 5.5. 7. $ make 8. $ [sudo] -E make install

If you want to compile more plugins at once: 1. Repeat the steps 1-3 from above for each plugin 2. $ cp [your compiz checkout]/cmake/all_plugins_in_folder_example-CMakeLists.txt CMakeLists.txt (copy our all plugin cmake build file) 3. $ mkdir build (create a build directory for all plugins) 3.5 If you want, you can install the plugin globally. This is required for plugins that are used by other plugins:

  • $ export BUILD_GLOBAL=true cmake .. or cmake .. -DCOMPIZ_PLUGIN_INSTALL_TYPE="compiz"

INSTEAD of step 4. 3.7 If you are using a prefix other than /usr/local and have another compiz installation, you will need to do

  • $ cmake .. -DCMAKE_INSTALL_PREFIX=[/path/to/prefix]

INSTEAD of step 4. Just add this argument if you are doing step 5.5 as well. 4. $ cmake .. 5. $ make 6. $ [sudo] make install

The install of the plugin may fail, if you have another version (0.8.x/0.7.x) of compiz installed. In this case pkg-config might pick the wrong compiz.pc file. There are several ways to fix this: 1. Delete the other compiz.pc (Do this only if you don't want to build any of the old compiz plugins/packages anymore) 2. Put the new compiz prefix before the old one into you PKG_CONFIG_PATH environment variable 3. If the new installation prefix is not already in your PKG_CONFIG_PATH environment variable you can use the CMAKE_INSTALL_PREFIX cmake variable also to build plugins.

C++Compiling (last edited 2012-06-27 00:20:55 by modemcable088)