|
From: Lasse Kärkkäi. <tr...@us...> - 2009-11-28 05:04:02
|
Module: performous
Branch: menu
Commit: c32b0e39924263b0c7727a269d7b7a0079be51e6
Author: Lasse Karkkainen <tro...@tr...>
Date: Fri Nov 27 16:19:53 2009 +0200
Made libs part of performous build again
---
CMakeLists.txt | 3 ++-
docs/Compiling.txt | 16 +++-------------
game/CMakeLists.txt | 16 ++++++++++++----
libs/CMakeLists.txt | 8 ++++++++
libs/libda/CMakeLists.txt | 30 +++++++++++++++++-------------
libs/libda/src/CMakeLists.txt | 4 +++-
libs/plugin++/CMakeLists.txt | 16 +++++++++-------
7 files changed, 54 insertions(+), 39 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 35002bb..6437a8e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -8,7 +8,7 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
message(FATAL_ERROR "In-source builds are not permitted. Make a separate folder for building:\nmkdir build; cd build; cmake ..\nBefore that, remove the files already created:\nrm -rf CMakeCache.txt CMakeFiles")
endif(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
-include("${CMAKE_SOURCE_DIR}/cmake/performous-packaging.cmake")
+include(cmake/performous-packaging.cmake)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
@@ -32,6 +32,7 @@ mark_as_advanced(SHARE_INSTALL)
include_directories(libs/plugin++/include)
include_directories(libs/libda/include)
+add_subdirectory(libs)
add_subdirectory(themes)
add_subdirectory(data)
add_subdirectory(game)
diff --git a/docs/Compiling.txt b/docs/Compiling.txt
index 4327ad9..ef02a4b 100644
--- a/docs/Compiling.txt
+++ b/docs/Compiling.txt
@@ -2,21 +2,11 @@ To install from git:
# Checkout the git
git clone git://performous.git.sourceforge.net/gitroot/performous/performous
- # Create separate build folder under trunk to avoid polluting the source three
+ # Create separate build folder under trunk to avoid polluting the source tree
mkdir performous/build
cd performous/build
- # Compile and install libplugin++ (our C++ plugin/DLL library)
- cmake ../libs/plugin++/
- make
- sudo make install
- rm -rf *
- # Compile and install libda (our audio library)
- cmake ../libs/libda/
- make
- sudo make install
- rm -rf *
- # Compile the game itself
- cmake ..
+ # Compile the game and its support libraries
+ cmake ../
make
sudo make install
# Run the game
diff --git a/game/CMakeLists.txt b/game/CMakeLists.txt
index 66b61da..951e708 100644
--- a/game/CMakeLists.txt
+++ b/game/CMakeLists.txt
@@ -9,20 +9,28 @@ set(SOURCES ${SOURCE_FILES} ${HEADER_FILES})
find_package(Boost 1.36 REQUIRED COMPONENTS thread date_time program_options regex filesystem)
include_directories(${Boost_INCLUDE_DIRS})
-set(LIBS ${LIBS} ${Boost_LIBRARIES})
+list(APPEND LIBS ${Boost_LIBRARIES})
+
+# Libraries are part of Performous build process (for now)
+set(SLAVE_LIBS TRUE)
+if(SLAVE_LIBS)
+ list(APPEND LIBS plugin++ da)
+else()
+ set(OUR_LIBS Plugin++ LibDA)
+endif()
# Find all the libs that don't require extra parameters
-foreach(lib Plugin++ LibDA SDL PangoCairo LibRSVG LibXML++ Magick++ GLEW AVFormat SWScale OpenGL)
+foreach(lib ${OUR_LIBS} SDL PangoCairo LibRSVG LibXML++ Magick++ GLEW AVFormat SWScale OpenGL)
find_package(${lib} REQUIRED)
include_directories(${${lib}_INCLUDE_DIRS})
- set(LIBS ${LIBS} ${${lib}_LIBRARIES})
+ list(APPEND LIBS ${${lib}_LIBRARIES})
add_definitions(${${lib}_DEFINITIONS})
endforeach(lib)
find_package(PortMidi)
if(PortMidi_FOUND)
include_directories(PortMidi_INCLUDE_DIRS)
- set(LIBS ${LIBS} ${PortMidi_LIBRARIES})
+ list(APPEND LIBS ${PortMidi_LIBRARIES})
add_definitions("-DHAVE_PORTMIDI")
endif(PortMidi_FOUND)
diff --git a/libs/CMakeLists.txt b/libs/CMakeLists.txt
new file mode 100644
index 0000000..679f8c3
--- /dev/null
+++ b/libs/CMakeLists.txt
@@ -0,0 +1,8 @@
+cmake_minimum_required(VERSION 2.6)
+
+# Make plugin++ and libda not install themselves on the system
+set(SLAVE_LIB TRUE)
+
+add_subdirectory(plugin++)
+add_subdirectory(libda)
+
diff --git a/libs/libda/CMakeLists.txt b/libs/libda/CMakeLists.txt
index f151649..5c8f5d4 100644
--- a/libs/libda/CMakeLists.txt
+++ b/libs/libda/CMakeLists.txt
@@ -11,8 +11,6 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
message(FATAL_ERROR "In-source builds are not permitted. Make a separate folder for building:\nmkdir build; cd build; cmake ..\nBefore that, remove the files already created:\nrm -rf CMakeCache.txt CMakeFiles")
endif()
-include("${CMAKE_SOURCE_DIR}/cmake/libda-packaging.cmake")
-
# Add a sensible build type default and warning because empty means no optimization and no debug info.
if(NOT CMAKE_BUILD_TYPE)
message("WARNING: CMAKE_BUILD_TYPE is not defined!\n Defaulting to CMAKE_BUILD_TYPE=Release. Use ccmake to set a proper value.")
@@ -27,13 +25,17 @@ set(LibDA_PLUGIN_DIR "lib${LIB_SUFFIX}/libda")
include_directories(include)
-# Store version data in config.h
-set(CONFIG_H ${CMAKE_CURRENT_BINARY_DIR}/config.h)
-configure_file(cmake/config.h.in ${CONFIG_H} ESCAPE_QUOTES @ONLY)
-
-# Install include files
-file(GLOB HEADER_FILES "include/libda/*")
-install(FILES ${HEADER_FILES} ${CONFIG_H} DESTINATION include/libda)
+if(NOT SLAVE_LIB)
+ include(cmake/libda-packaging.cmake)
+ # Store version data in config.h
+ set(CONFIG_H ${CMAKE_CURRENT_BINARY_DIR}/config.h)
+ configure_file(cmake/config.h.in ${CONFIG_H} ESCAPE_QUOTES @ONLY)
+ # Install include files
+ file(GLOB HEADER_FILES "include/libda/*")
+ install(FILES ${HEADER_FILES} ${CONFIG_H} DESTINATION include/libda)
+ # Generate CMake scripts for finding the library
+ add_subdirectory(cmake)
+endif()
if(CMAKE_COMPILER_IS_GNUCXX)
message(STATUS "GCC detected, adding compile flags")
@@ -48,11 +50,13 @@ set(Boost_USE_MULTITHREAD ON)
find_package(Boost 1.36 REQUIRED COMPONENTS thread date_time)
include_directories(${Boost_INCLUDE_DIRS})
-find_package(Plugin++ REQUIRED)
-message(plugin++ ${Plugin++_INCLUDE_DIRS})
-include_directories(${Plugin++_INCLUDE_DIRS})
+if(SLAVE_LIB)
+ set(Plugin++_LIBRARIES da)
+else()
+ find_package(Plugin++ REQUIRED)
+ include_directories(${Plugin++_INCLUDE_DIRS})
+endif()
add_subdirectory(src)
add_subdirectory(plugins)
-add_subdirectory(cmake)
diff --git a/libs/libda/src/CMakeLists.txt b/libs/libda/src/CMakeLists.txt
index ba22301..a767b7d 100644
--- a/libs/libda/src/CMakeLists.txt
+++ b/libs/libda/src/CMakeLists.txt
@@ -11,5 +11,7 @@ set_target_properties(da PROPERTIES
INSTALL_RPATH_USE_LINK_PATH TRUE
)
-install(TARGETS da EXPORT LibDA DESTINATION lib${LIB_SUFFIX})
+if(NOT SLAVE_LIB)
+ install(TARGETS da EXPORT LibDA DESTINATION lib${LIB_SUFFIX})
+endif()
diff --git a/libs/plugin++/CMakeLists.txt b/libs/plugin++/CMakeLists.txt
index 4d2e22c..b8e8b16 100644
--- a/libs/plugin++/CMakeLists.txt
+++ b/libs/plugin++/CMakeLists.txt
@@ -10,8 +10,6 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR)
message(FATAL_ERROR "In-source builds are not permitted. Make a separate folder for building:\nmkdir build; cd build; cmake ..\nBefore that, remove the files already created:\nrm -rf CMakeCache.txt CMakeFiles")
endif()
-include("${CMAKE_SOURCE_DIR}/cmake/plugin++-packaging.cmake")
-
# Add a sensible build type default and warning because empty means no optimization and no debug info.
if(NOT CMAKE_BUILD_TYPE)
message("WARNING: CMAKE_BUILD_TYPE is not defined!\n Defaulting to CMAKE_BUILD_TYPE=Release. Use ccmake to set a proper value.")
@@ -50,11 +48,15 @@ set_target_properties(plugin++ PROPERTIES
INSTALL_RPATH_USE_LINK_PATH TRUE
)
-install(TARGETS plugin++ EXPORT Plugin++ DESTINATION lib${LIB_SUFFIX})
+if(NOT SLAVE_LIB)
+ include(cmake/plugin++-packaging.cmake)
+
+ install(TARGETS plugin++ EXPORT Plugin++ DESTINATION lib${LIB_SUFFIX})
-FILE(GLOB HEADER_FILES "include/plugin++/*")
-install(FILES ${HEADER_FILES} DESTINATION include/plugin++)
+ FILE(GLOB HEADER_FILES "include/plugin++/*")
+ install(FILES ${HEADER_FILES} DESTINATION include/plugin++)
-# Install/generate CMake files for finding Plugin++
-add_subdirectory(cmake)
+ # Install/generate CMake files for finding Plugin++
+ add_subdirectory(cmake)
+endif()
|