src/CMakeLists.txt
author Tero Marttila <terom@fixme.fi>
Mon, 26 Jan 2009 19:50:52 +0200
branchconsole_gui
changeset 429 a86c7c486b14
parent 422 5e4c8631779e
child 433 4ee797e09383
permissions -rw-r--r--
branch off Graphics/Console development
FILE(GLOB SOURCE_FILES "*.cc")
FILE(GLOB HEADER_FILES "*.hh")

set_source_files_properties("version.c" PROPERTIES GENERATED true)

# Component selection
if (DEFINED GRAPHICS_ENABLED)
    # leave it

elseif (DEFINED ENABLE_GRAPHICS)
    set (GRAPHICS_ENABLED ${ENABLE_GRAPHICS})

else (DEFINED GRAPHICS_ENABLED)
    set (GRAPHICS_ENABLED true)

endif (DEFINED GRAPHICS_ENABLED)

if (DEFINED NETWORK_ENABLED)
    # leave it

elseif (DEFINED ENABLE_NETWORK)
    set (NETWORK_ENABLED ${ENABLE_NETWORK})

else (DEFINED NETWORK_ENABLED)
    set (NETWORK_ENABLED true)

endif (DEFINED NETWORK_ENABLED)

mark_as_advanced (CLEAR GRAPHICS_ENABLED NETWORK_ENABLED)

# Generate config.h
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/config.h.in" "${CMAKE_CURRENT_BINARY_DIR}/config.h" @ONLY)
include_directories("${CMAKE_CURRENT_BINARY_DIR}")

# main module
set (CORE_CLANLIB_COMPONENTS Core App Signals)
set (CORE_SOURCES ${SOURCE_FILES} ${HEADER_FILES} "version.c")

# Graphics module
if (GRAPHICS_ENABLED)
    add_subdirectory (Graphics)

endif (GRAPHICS_ENABLED)

# Network module
if (NETWORK_ENABLED)
    add_subdirectory (Network)

endif (NETWORK_ENABLED)    

# Libraries
set (CLANLIB_VERSION 0.8)
set (CLANLIB_COMPONENTS ${CORE_CLANLIB_COMPONENTS} ${GRAPHICS_CLANLIB_COMPONENTS} ${NETWORK_CLANLIB_COMPONENTS})

# ClanLib 0.8
message (STATUS "Finding ClanLib version=${CLANLIB_VERSION}, components=${CLANLIB_COMPONENTS}" )
find_package(ClanLib ${CLANLIB_VERSION} REQUIRED COMPONENTS ${CLANLIB_COMPONENTS})

include_directories(${ClanLib_INCLUDE_DIRS})

# build list of libs/source files
set(LIBS ${LIBS} ${ClanLib_LIBRARIES})
set(SOURCES ${CORE_SOURCES} ${GRAPHICS_SOURCES} ${NETWORK_SOURCES})

# Assumes the project generates only one executable. If you need more, you'll need to alter
# the script and replace ${PROJECT_SHORT_NAME} by executable name.
add_executable("${PROJECT_SHORT_NAME}" ${SOURCES})
target_link_libraries("${PROJECT_SHORT_NAME}" ${LIBS})
install(TARGETS "${PROJECT_SHORT_NAME}" DESTINATION bin)