Skip to content

Commit

Permalink
Merge pull request #222 from q4a/xd_dev_cmake
Browse files Browse the repository at this point in the history
Add cmake files for Linux build
  • Loading branch information
Xottab-DUTY committed Jul 1, 2018
2 parents c31911f + b67287f commit a826f66
Show file tree
Hide file tree
Showing 29 changed files with 439 additions and 28 deletions.
14 changes: 13 additions & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,29 @@ cmake_minimum_required(VERSION 2.8.0)
project(OpenXRay)

include(${PROJECT_SOURCE_DIR}/cmake/utils.cmake)

set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)

find_program(CCACHE_FOUND ccache)
if(CCACHE_FOUND)
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
endif(CCACHE_FOUND)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive --std=c++17")
#set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive") This is for the future versions
#set(CMAKE_CXX_STANDARD 14) #Otherwise adds -std=gnu++11 and breaks successful building
#set(CMAKE_CXX_STANDARD_REQUIRED ON)
#set(CMAKE_CXX_EXTENSIONS OFF)

add_definitions(-D_MT -D_CPPUNWIND -DPURE_DYNAMIC_CAST -DDECLARE_SPECIALIZATION -DM_NOSTDCONTAINERS_EXT -DUSE_OGL)

set(LUA_INCLUDE_DIR Externals/LuaJIT/src)
set(LUA_LIBRARIES luajit)
set(LUA_FOUND 1)
if (NOT WIN32)
find_package(OpenSSL REQUIRED)
find_package(Crypto++ REQUIRED)
find_package(PugiXML REQUIRED)
find_package(Theora REQUIRED)
find_package(OGG REQUIRED)
find_package(SDL2 REQUIRED)
Expand Down
3 changes: 3 additions & 0 deletions Externals/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,8 @@ add_subdirectory(luabind)
add_subdirectory(lzo)
add_subdirectory(cximage)
add_subdirectory(NVTT)
add_subdirectory(OPCODE)
add_subdirectory(ode)
#add_subdirectory(pugixml)
#add_subdirectory(gli)
#add_subdirectory(glew)
13 changes: 13 additions & 0 deletions Externals/OPCODE/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
project(OPCODE)
add_dir (
"."
)

set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)

include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../../src ${CMAKE_CURRENT_SOURCE_DIR}/../../sdk/include)

add_library(${PROJECT_NAME} SHARED ${${PROJECT_NAME}__SOURCES} ${${PROJECT_NAME}__INCLUDES})

set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "")
target_link_libraries(${PROJECT_NAME} xrCore)
15 changes: 15 additions & 0 deletions Externals/ode/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
project(ODE)

list(APPEND DIRS
"ode/src"
"include/ode"
"contrib/msvc7/ode_default"
)

add_dir("${DIRS}")

include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_DIR}/../../sdk/include )

add_definitions(-DdSINGLE -D_SECURE_SCL=0 -DLINUX -D_cdecl= -D__forceinline=inline)

add_library(${PROJECT_NAME} SHARED ${${PROJECT_NAME}__SOURCES} ${${PROJECT_NAME}__INCLUDES})
36 changes: 36 additions & 0 deletions cmake/FindCrypto++.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
#https://raw.githubusercontent.com/harningt/cryptoface/7332799df7d9c78012eaa153f6598dcfa7debbc4/Modules/FindCrypto%2B%2B.cmake
# - Find Crypto++

if(CRYPTO++_INCLUDE_DIR AND CRYPTO++_LIBRARIES)
set(CRYPTO++_FOUND TRUE)

else(CRYPTO++_INCLUDE_DIR AND CRYPTO++_LIBRARIES)
find_path(CRYPTO++_INCLUDE_DIR cryptlib.h
/usr/include/crypto++
/usr/include/cryptopp
/usr/local/include/crypto++
/usr/local/include/cryptopp
/opt/local/include/crypto++
/opt/local/include/cryptopp
$ENV{SystemDrive}/Crypto++/include
)

find_library(CRYPTO++_LIBRARIES NAMES cryptopp
PATHS
/usr/lib
/usr/local/lib
/opt/local/lib
$ENV{SystemDrive}/Crypto++/lib
)

if(CRYPTO++_INCLUDE_DIR AND CRYPTO++_LIBRARIES)
set(CRYPTO++_FOUND TRUE)
message(STATUS "Found Crypto++: ${CRYPTO++_INCLUDE_DIR}, ${CRYPTO++_LIBRARIES}")
else(CRYPTO++_INCLUDE_DIR AND CRYPTO++_LIBRARIES)
set(CRYPTO++_FOUND FALSE)
message(FATAL_ERROR "Crypto++ not found.")
endif(CRYPTO++_INCLUDE_DIR AND CRYPTO++_LIBRARIES)

mark_as_advanced(CRYPTO++_INCLUDE_DIR CRYPTO++_LIBRARIES)

endif(CRYPTO++_INCLUDE_DIR AND CRYPTO++_LIBRARIES)
47 changes: 47 additions & 0 deletions cmake/FindPugiXML.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
#https://raw.githubusercontent.com/imageworks/OpenShadingLanguage/1bd2d67d88418544c4990d93513813696c9a8c06/src/cmake/modules/FindPugiXML.cmake
# Find the pugixml XML parsing library.
#
# Sets the usual variables expected for find_package scripts:
#
# PUGIXML_INCLUDE_DIR - header location
# PUGIXML_LIBRARIES - library to link against
# PUGIXML_FOUND - true if pugixml was found.

unset (PUGIXML_LIBRARY CACHE)
unset (PUGIXML_INCLUDE_DIR CACHE)
find_path (PUGIXML_INCLUDE_DIR
NAMES pugixml.hpp
PATHS ${PUGIXML_HOME}/include
/usr/local/include
/usr/local/include/pugixml-1.8)
find_library (PUGIXML_LIBRARY
NAMES pugixml
PATHS ${PUGIXML_HOME}/lib
/usr/local/lib
/usr/local/lib/pugixml-1.8)

# Second chance -- if not found, look in the OIIO distro
if (NOT PUGIXML_INCLUDE_DIR AND OPENIMAGEIO_INCLUDE_DIR)
find_path (PUGIXML_INCLUDE_DIR
NAMES pugixml.hpp
PATHS ${OPENIMAGEIO_INCLUDE_DIR}/OpenImageIO)
set (PUGIXML_LIBRARY ${OPENIMAGEIO_LIBRARIES})
endif ()


# Support the REQUIRED and QUIET arguments, and set PUGIXML_FOUND if found.
include (FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS (PugiXML DEFAULT_MSG PUGIXML_LIBRARY
PUGIXML_INCLUDE_DIR)

if (PUGIXML_FOUND)
set (PUGIXML_LIBRARIES ${PUGIXML_LIBRARY})
if (NOT PugiXML_FIND_QUIETLY)
message (STATUS "PugiXML include = ${PUGIXML_INCLUDE_DIR}")
message (STATUS "PugiXML library = ${PUGIXML_LIBRARY}")
endif ()
else ()
message (FATAL_ERROR "No PugiXML found")
endif()

mark_as_advanced (PUGIXML_LIBRARY PUGIXML_INCLUDE_DIR)
12 changes: 6 additions & 6 deletions cmake/utils.cmake
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
macro(add_dir DIRS)
foreach(dir ${DIRS})
message( "adding " ${dir} )
message( "adding ${dir} to ${PROJECT_NAME}")
include_directories (${dir} )
file( GLOB ${dir}__INCLUDES_H ${dir} *.h)
file( GLOB ${dir}__INCLUDES_HPP ${dir} *.hpp)
list( APPEND XRCORE__INCLUDES ${${dir}__INCLUDES_H} ${${dir}__INCLUDES_HPP} )
file( GLOB ${dir}__SOURCES ${dir} *.cpp)
list( APPEND XRCORE__SOURCES ${${dir}__SOURCES} )
file( GLOB ${dir}__INCLUDES_H ${dir} ${dir}/*.h)
file( GLOB ${dir}__INCLUDES_HPP ${dir} ${dir}/*.hpp)
list( APPEND ${PROJECT_NAME}__INCLUDES ${${dir}__INCLUDES_H} ${${dir}__INCLUDES_HPP} )
file( GLOB ${dir}__SOURCES ${dir} ${dir}/*.cpp)
list( APPEND ${PROJECT_NAME}__SOURCES ${${dir}__SOURCES} )
endforeach()
endmacro()
17 changes: 9 additions & 8 deletions src/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
#add_subdirectory(utils)
#add_subdirectory(Layers)
add_subdirectory(utils)
add_subdirectory(Layers)
#add_subdirectory(xr_3da)
#add_subdirectory(xrMisc)
#add_subdirectory(xrAICore)
#add_subdirectory(xrCDB)
add_subdirectory(xrAICore)
add_subdirectory(xrCDB)
add_subdirectory(xrCore)
#add_subdirectory(xrEngine)
#add_subdirectory(xrGame)
#add_subdirectory(xrNetServer)
#add_subdirectory(xrParticles)
#add_subdirectory(xrPhysics)
#add_subdirectory(xrScriptEngine)
#add_subdirectory(xrSound)
add_subdirectory(xrParticles)
add_subdirectory(xrPhysics)
add_subdirectory(xrScriptEngine)
add_subdirectory(xrSound)
6 changes: 6 additions & 0 deletions src/Layers/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
add_subdirectory(xrAPI)
#add_subdirectory(xrRenderPC_R1)
#add_subdirectory(xrRenderPC_R2)
#add_subdirectory(xrRenderPC_R3)
#add_subdirectory(xrRenderPC_R4)
#add_subdirectory(xrRenderPC_GL)
8 changes: 8 additions & 0 deletions src/Layers/xrAPI/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
project(xrAPI)

include_directories(${CMAKE_CURRENT_SOURCE_DIR}/../.. ${CMAKE_CURRENT_SOURCE_DIR}/../../../sdk/include)

add_definitions(-DXRAPI_EXPORTS)

add_library(${PROJECT_NAME} SHARED "xrAPI.cpp" "stdafx.h")
set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "")
23 changes: 23 additions & 0 deletions src/Layers/xrRenderPC_GL/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
project(xrRenderPC_GL)

list(APPEND DIRS
"."
)


add_dir("${DIRS}")

include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/../..
${CMAKE_CURRENT_SOURCE_DIR}/../../../Externals/luabind
${CMAKE_CURRENT_SOURCE_DIR}/../../../sdk/include
)

#list(REMOVE_ITEM ${PROJECT_NAME}__SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/./LevelCompilerLoggerWindow.cpp")
#list(REMOVE_ITEM ${PROJECT_NAME}__INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}/./LevelCompilerLoggerWindow.hpp")

add_definitions(-DXRLCUTIL_EXPORTS -D_USRDLL -DXRRENDER_GL_EXPORTS -DUSE_OGL -DNO_XR_VDECLARATOR)
add_library(${PROJECT_NAME} SHARED ${${PROJECT_NAME}__SOURCES} ${${PROJECT_NAME}__INCLUDES})

set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "")
target_link_libraries(${PROJECT_NAME} xrCore luabind LuaJIT xrCDB xrEngine xrParticles xrScriptEngine xrAPI)
2 changes: 2 additions & 0 deletions src/utils/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
add_subdirectory(xrLCUtil)
add_subdirectory(xrQSlim)
22 changes: 22 additions & 0 deletions src/utils/xrLCUtil/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
project(xrLCUtil)

list(APPEND DIRS
"."
)

add_dir("${DIRS}")

include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/../..
${CMAKE_CURRENT_SOURCE_DIR}/../../../sdk/include
)

list(REMOVE_ITEM ${PROJECT_NAME}__SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/./LevelCompilerLoggerWindow.cpp")
list(REMOVE_ITEM ${PROJECT_NAME}__INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}/./LevelCompilerLoggerWindow.hpp")
list(REMOVE_ITEM ${PROJECT_NAME}__INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}/./ILevelCompilerLogger.hpp")

add_definitions(-DXRLCUTIL_EXPORTS)
add_library(${PROJECT_NAME} SHARED ${${PROJECT_NAME}__SOURCES} ${${PROJECT_NAME}__INCLUDES})

set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "")
target_link_libraries(${PROJECT_NAME} xrCore)
18 changes: 18 additions & 0 deletions src/utils/xrQSlim/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
project(xrQSlim)

list(APPEND DIRS
"src"
)

add_dir("${DIRS}")

include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/../..
${CMAKE_CURRENT_SOURCE_DIR}/../../../sdk/include
)

#list(REMOVE_ITEM ${PROJECT_NAME}__SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/./LevelCompilerLoggerWindow.cpp")
#ist(REMOVE_ITEM ${PROJECT_NAME}__INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}/./LevelCompilerLoggerWindow.hpp")

add_definitions(-DXR_QSLIM_EXPORTS)
add_library(${PROJECT_NAME} STATIC ${${PROJECT_NAME}__SOURCES} ${${PROJECT_NAME}__INCLUDES})
29 changes: 29 additions & 0 deletions src/xrAICore/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
project(xrAICore)

list(APPEND DIRS
"."
"Components"
"Navigation"
"Navigation/PatrolPath"
"Navigation/PathManagers"
)

add_dir("${DIRS}")

include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/..
${CMAKE_CURRENT_SOURCE_DIR}/../../Externals/luabind
${CMAKE_CURRENT_SOURCE_DIR}/../../sdk/include
)

#foreach(header ${${PROJECT_NAME}__INCLUDES})
# if (${header} MATCHES _inline.h$)
# list(REMOVE_ITEM ${PROJECT_NAME}__INCLUDES ${header})
# endif()
#endforeach()

add_definitions(-DXRAICORE_EXPORTS -DAI_COMPILER -D_SECURE_SCL=0)
add_library(${PROJECT_NAME} SHARED ${${PROJECT_NAME}__SOURCES} ${${PROJECT_NAME}__INCLUDES})

set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "")
target_link_libraries(${PROJECT_NAME} xrCore xrAPI xrScriptEngine luabind luajit)
14 changes: 14 additions & 0 deletions src/xrCDB/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
project(xrCDB)

list(APPEND DIRS
"."
)

add_dir("${DIRS}")

include_directories(${CMAKE_CURRENT_SOURCE_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/../../sdk/include)

add_library(${PROJECT_NAME} SHARED ${${PROJECT_NAME}__SOURCES} ${${PROJECT_NAME}__INCLUDES})

set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "")
target_link_libraries(${PROJECT_NAME} xrCore OPCODE xrAPI)
23 changes: 16 additions & 7 deletions src/xrCore/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
add_dir (
project(xrCore)

list(APPEND DIRS
"."
"Animation"
"Compression"
Expand All @@ -10,13 +12,20 @@ add_dir (
"Text"
"Threading"
"XML"
)
)

add_dir("${DIRS}")

message( "path " ${CMAKE_CURRENT_SOURCE_DIR} )
include_directories(${CMAKE_CURRENT_SOURCE_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/../../Externals/pugixml/src ${CMAKE_CURRENT_SOURCE_DIR}/../../sdk/include)

include_directories(${CMAKE_CURRENT_SOURCE_DIR}/.. ${CMAKE_CURRENT_SOURCE_DIR}/../../sdk/include)
add_definitions(-DXRCORE_EXPORTS)
add_library(${PROJECT_NAME} SHARED ${${PROJECT_NAME}__SOURCES} ${${PROJECT_NAME}__INCLUDES})

add_library(xrCore SHARED ${XRCORE__SOURCES} ${XRCORE__INCLUDES})
set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "")
#this is a temporary solution until find_package will not be fixed
set(CRYPTO_LIBRARY crypto++)
set(PUGIXML_LIBRARY pugixml)
set(TBB_LIBRARIES tbb tbbmalloc_proxy tbbmalloc)
set(SDL2_LIB SDL2)

set_target_properties(xrCore PROPERTIES PREFIX "")
target_link_libraries(xrCore ${SDL2_LIB} ${OPENSSL_LIBRARIES} ${LZO_LIBRARY} ${CRYPTO_LIBRARY} ${PUGIXML_LIBRARY})
target_link_libraries(${PROJECT_NAME} ${SDL2_LIB} ${LZO_LIBRARY} ${CRYPTO_LIBRARY} ${PUGIXML_LIBRARY} ${TBB_LIBRARIES})
24 changes: 24 additions & 0 deletions src/xrEngine/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
project(xrEngine)

list(APPEND DIRS
"."
)

add_dir("${DIRS}")

include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/..
${CMAKE_CURRENT_SOURCE_DIR}/../../Externals/OpenAutomate/inc
${CMAKE_CURRENT_SOURCE_DIR}/../../Externals/FreeImage/Dist/x64
${CMAKE_CURRENT_SOURCE_DIR}/../../sdk/include
/usr/include/SDL2
)

list(REMOVE_ITEM ${PROJECT_NAME}__SOURCES "${CMAKE_CURRENT_SOURCE_DIR}/./editor_environment_manager_properties.cpp")
#list(REMOVE_ITEM ${PROJECT_NAME}__INCLUDES "${CMAKE_CURRENT_SOURCE_DIR}/./xr_cda.h")

add_definitions(-DENGINE_BUILD)
add_library(${PROJECT_NAME} SHARED ${${PROJECT_NAME}__SOURCES} ${${PROJECT_NAME}__INCLUDES})

set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "")
target_link_libraries(${PROJECT_NAME} xrCore luabind xrAPI xrSound xrScriptEngine luajit theora ${OGG_LIBRARIES} xrNetServer xrCDB xrPhysics openal)
Loading

0 comments on commit a826f66

Please sign in to comment.