170 lines
4.8 KiB
CMake
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()
|