protot/3rdparty/RuntimeCompiledCpp/CMakeLists.txt

170 lines
4.8 KiB
CMake

cmake_minimum_required(VERSION 2.8)
project( RuntimeCompiledCPlusPlus )
#
# Options
#
option(BUILD_EXAMPLES "Build example applications" ON)
option(GLFW_SYSTEM "Use the operating system glfw library" OFF)
find_package(OpenGL REQUIRED)
if(UNIX AND NOT APPLE)
set(BUILD_TYPE SHARED)
else()
set(BUILD_TYPE STATIC)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR})
endif()
include(cmake/ProjectFiles.cmake)
#
# RuntimeCompiler
#
add_library(RuntimeCompiler ${BUILD_TYPE} ${RuntimeCompiler_SRCS})
#
# RuntimeObjectSystem
#
add_library(RuntimeObjectSystem ${BUILD_TYPE} ${RuntimeObjectSystem_SRCS})
target_link_libraries(RuntimeObjectSystem RuntimeCompiler)
if(UNIX)
target_link_libraries(RuntimeObjectSystem dl)
endif()
#
# Make Install
#
install(DIRECTORY RuntimeObjectSystem/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/RuntimeObjectSystem
FILES_MATCHING PATTERN "*.h")
install(DIRECTORY RuntimeCompiler/ DESTINATION ${CMAKE_INSTALL_PREFIX}/include/RuntimeCompiler
FILES_MATCHING PATTERN "*.h")
install(TARGETS RuntimeObjectSystem RuntimeCompiler
DESTINATION ${CMAKE_INSTALL_PREFIX}/lib/)
if(BUILD_EXAMPLES)
#
# ConsoleExample
#
add_executable(ConsoleExample ${ConsoleExample_SRCS})
target_link_libraries(ConsoleExample RuntimeCompiler RuntimeObjectSystem)
#
# Renderer
#
add_library(Renderer ${BUILD_TYPE} ${Renderer_SRCS})
target_link_libraries(Renderer ${OPENGL_LIBRARIES} ${ASSIMP_LIBRARIES})
#
# Systems
#
add_library(Systems ${BUILD_TYPE} ${Systems_SRCS})
#
# Freetype WIN32
#
if(WIN32)
set(FREETYPE_INCLUDE_DIR_freetype2 ${CMAKE_SOURCE_DIR}/External/support/freetype/include/freetype)
set(FREETYPE_INCLUDE_DIR_ft2build ${CMAKE_SOURCE_DIR}/External/support/freetype/include)
if(${CMAKE_CL_64})
set(FREETYPE_LIBRARY ${CMAKE_SOURCE_DIR}/External/support/lib/freetype2410MTx64.lib)
else()
set(FREETYPE_LIBRARY ${CMAKE_SOURCE_DIR}/External/support/lib/freetype2410MT.lib)
endif()
elseif(APPLE)
set(FREETYPE_INCLUDE_DIR_freetype2 ${CMAKE_SOURCE_DIR}/External/support/freetype/include/freetype)
set(FREETYPE_INCLUDE_DIR_ft2build ${CMAKE_SOURCE_DIR}/External/support/freetype/include)
FIND_LIBRARY(ZLIB_LIBRARY libs)
MARK_AS_ADVANCED(ZLIB_LIBRARY)
set(FREETYPE_LIBRARY ${CMAKE_SOURCE_DIR}/External/support/lib/MacOSX/libfreetype.a ${ZLIB_LIBRARY})
endif()
#
# glfw
#
if(GLFW_SYSTEM)
set(GLFW_LIBRARIES glfw)
else()
include_directories(External/glfw/include)
if(WIN32)
set(GLFW_LIBRARIES glfw winmm)
add_subdirectory( ${CMAKE_SOURCE_DIR}/External/glfw/projects )
else()
add_library( glfw STATIC IMPORTED )
if(APPLE)
FIND_LIBRARY(COCOA_LIBRARY Cocoa)
FIND_LIBRARY(IOKIT_LIBRARY IOKit)
MARK_AS_ADVANCED(COCOA_LIBRARY IOKIT_LIBRARY)
set_target_properties( glfw PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/External/glfw/libOSX/libglfw.a )
set(GLFW_LIBRARIES glfw ${COCOA_LIBRARY} ${IOKIT_LIBRARY})
else()
set_target_properties( glfw PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/External/glfw/libX11/libglfw.a )
set(GLFW_LIBRARIES glfw X11 pthread)
endif()
endif()
endif()
#
# assimp
#
if(WIN32)
add_library( assimp STATIC IMPORTED )
set(ASSIMP_LIBRARIES assimp)
if(${CMAKE_CL_64})
set_target_properties( assimp PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/External/assimp/lib/assimp_release-dll_x64/assimp.lib )
set(ASSIMP_DLL ${CMAKE_SOURCE_DIR}/External/assimp/bin/assimp_release-dll_win32/Assimp64.dll)
else()
set_target_properties( assimp PROPERTIES IMPORTED_LOCATION ${CMAKE_SOURCE_DIR}/External/assimp/lib/assimp_release-dll_win32/assimp.lib )
set(ASSIMP_DLL ${CMAKE_SOURCE_DIR}/External/assimp/bin/assimp_release-dll_win32/Assimp32.dll)
endif()
if(CMAKE_GENERATOR STREQUAL "NMake Makefiles")
file(COPY ${ASSIMP_DLL} DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY})
else()
foreach( OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES} )
file(COPY ${ASSIMP_DLL} DESTINATION ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}/${OUTPUTCONFIG})
endforeach( OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES )
endif()
endif()
#
# SimpleTest
#
add_subdirectory(External/libRocket/Build)
include_directories(
${OPENGL_INCLUDE_DIR}
External/libRocket/Include
External/assimp/include
)
if(WIN32)
add_executable(SimpleTest WIN32 ${SimpleTest_SRCS})
else()
add_executable(SimpleTest ${SimpleTest_SRCS})
endif()
target_link_libraries(SimpleTest
RuntimeCompiler
RuntimeObjectSystem
Renderer
Systems
RocketCore
RocketControls
RocketDebugger
${OPENGL_LIBRARIES}
${GLFW_LIBRARIES}
${ASSIMP_LIBRARIES}
)
if(MSVC)
set_target_properties(SimpleTest ConsoleExample PROPERTIES COMPILE_FLAGS "/FC")
else()
Set(CMAKE_CXX_FLAGS "-DCOMPILE_PATH=\"\\\"$(PWD)\\\"\"")
endif()
endif()