Skip to content

Commit

Permalink
Merge pull request #245 from q4a/xd_dev
Browse files Browse the repository at this point in the history
update all CMakeLists.txt, *.cmake and .travis.yml
  • Loading branch information
Xottab-DUTY committed Oct 7, 2018
2 parents 920b85e + 08b0286 commit 5a33028
Show file tree
Hide file tree
Showing 36 changed files with 5,119 additions and 174 deletions.
95 changes: 75 additions & 20 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,29 +1,84 @@
language: cpp
cache: ccache
# Based on https://github.com/ldionne/hana/blob/master/.travis.yml
dist: xenial
sudo: required
dist: trusty
compiler:
- g++
install: export CXX="g++-7"
cache: ccache
language: cpp

#branches:
# only:
# - linux
# - xd_dev
# - "/^v\\d+\\./"

os:
- linux

matrix:
include:
- env: C_COMPILER=gcc-7 CXX_COMPILER=g++-7 TARGET_CPU=x64 BUILD_CONFIGURATION=Release
addons: &gcc7
apt:
sources:
- sourceline: 'ppa:ubuntu-toolchain-r/test'
packages:
- g++-7

- env: C_COMPILER=gcc-7 CXX_COMPILER=g++-7 TARGET_CPU=x86 BUILD_CONFIGURATION=Release
addons: *gcc7

- env: C_COMPILER=gcc-7 CXX_COMPILER=g++-7 TARGET_CPU=x64 BUILD_CONFIGURATION=Debug
addons: *gcc7

- env: C_COMPILER=gcc-7 CXX_COMPILER=g++-7 TARGET_CPU=x86 BUILD_CONFIGURATION=Debug
addons: *gcc7

# - env: C_COMPILER=clang-5.0 CXX_COMPILER=clang++-5.0 TARGET_CPU=x64 BUILD_CONFIGURATION=Release
# addons: &clang50
# apt:
# sources:
# - llvm-toolchain-trusty-5.0
# packages:
# - clang-5.0

# - env: C_COMPILER=clang-5.0 CXX_COMPILER=clang++-5.0 TARGET_CPU=x84 BUILD_CONFIGURATION=Release
# addons: *clang50

# - env: C_COMPILER=clang-6.0 CXX_COMPILER=clang++-6.0 TARGET_CPU=x64 BUILD_CONFIGURATION=Release
# addons: &clang60
# apt:
# sources:
# - llvm-toolchain-trusty-6.0
# packages:
# - clang-6.0

# - env: C_COMPILER=clang-6.0 CXX_COMPILER=clang++-6.0 TARGET_CPU=x84 BUILD_CONFIGURATION=Release
# addons: *clang60


install:
- export CC=${C_COMPILER}
- export CXX=${CXX_COMPILER}
- ${CXX} --version

before_script:
- g++ --version
- sudo apt-get install libegl1-mesa-dev libgles2-mesa-dev libpugixml-dev libopenal-dev libtbb-dev libcrypto++-dev liblockfile-dev libfreeimage-dev
- sudo apt-get install cmake lua5.1-dev libssl-dev libogg-dev libtheora-dev libvorbis-dev libsdl2-dev liblzo2-dev libjpeg-dev libncurses5-dev
- export core_count=$(nproc || echo 4) && echo core_count = $core_count
- mkdir bin
- cd bin
- cmake ..
- if [ $TARGET_CPU == x64 ]; then
sudo apt-get install -y libglew-dev libegl1-mesa-dev libgles2-mesa-dev libpugixml-dev libopenal-dev libtbb-dev libcrypto++-dev liblockfile-dev libfreeimage-dev;
sudo apt-get install -y cmake liblua5.1-0-dev libssl-dev libogg-dev libtheora-dev libvorbis-dev libsdl2-dev liblzo2-dev libjpeg-dev libncurses5-dev;
cmake .. -DCMAKE_BUILD_TYPE=$BUILD_CONFIGURATION;
fi

- if [ $TARGET_CPU == x86 ]; then
sudo dpkg --add-architecture i386 && sudo apt-get -qq update && sudo apt-get install -y gcc-multilib g++-7-multilib libpulse-dev:i386 libglib2.0-dev:i386;
sudo apt-get install -y libglew-dev:i386 libegl1-mesa-dev:i386 libgles2-mesa-dev:i386 libpugixml-dev:i386 libopenal-dev:i386 libtbb-dev:i386 libcrypto++-dev:i386 liblockfile-dev:i386 libfreeimage-dev:i386;
sudo apt-get install -y cmake liblua5.1-0-dev:i386 libssl-dev:i386 libogg-dev:i386 libtheora-dev:i386 libvorbis-dev:i386 libsdl2-dev:i386 liblzo2-dev:i386 libjpeg-dev:i386 libncurses5-dev:i386;
CFLAGS="-m32 -march=native" CXXFLAGS="-m32 -march=native" cmake .. -DCMAKE_BUILD_TYPE=$BUILD_CONFIGURATION -DCMAKE_ASM_FLAGS=-m32;
fi

script:
- if [ $TRAVIS_OS_NAME == linux ]; then make && file src/xrCore/xrCore.so; fi
addons:
apt:
sources:
- ubuntu-toolchain-r-test
packages:
- g++-7
- if [ $TRAVIS_OS_NAME == linux ]; then make -j $core_count && file src/xrCore/xrCore.so; fi

notifications:
email: false
env:
global:
- LANG="en_US.UTF-8"
81 changes: 78 additions & 3 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,32 +4,107 @@ project(OpenXRay)
include(${PROJECT_SOURCE_DIR}/cmake/utils.cmake)

set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake)
set(CMAKE_SKIP_BUILD_RPATH TRUE)
if(NOT WIN32)
set(CMAKE_INSTALL_PREFIX "") # Skip all *nix-style installing for a while. Use DESTDIR
endif()

include(cotire)

function(xr_install tgt)
if(NOT MSVC)
install(TARGETS ${tgt} DESTINATION "."
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
GROUP_READ GROUP_EXECUTE
WORLD_READ WORLD_EXECUTE) # chmod 755
else()
install(TARGETS ${tgt}
CONFIGURATIONS Debug
RUNTIME DESTINATION Debug/
LIBRARY DESTINATION Debug/)
install(FILES $<TARGET_PDB_FILE:${tgt}>
CONFIGURATIONS Debug
DESTINATION Debug/ )
install(TARGETS ${tgt}
CONFIGURATIONS Release
RUNTIME DESTINATION Release/
LIBRARY DESTINATION Release/)
endif()
endfunction()

# Use only if install defined outside target directory(like luabind, for example)
function(xr_install_file tgt)
if(NOT MSVC)
install(FILES $<TARGET_FILE:${tgt}> DESTINATION "."
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE
GROUP_READ GROUP_EXECUTE
WORLD_READ WORLD_EXECUTE) # chmod 755
else()
install($<TARGET_FILE:${tgt}>
CONFIGURATIONS Debug
RUNTIME DESTINATION Debug/)
install(FILES $<TARGET_PDB_FILE:${tgt}>
CONFIGURATIONS Debug
DESTINATION Debug/ )
install($<TARGET_FILE:${tgt}>
CONFIGURATIONS Release
RUNTIME DESTINATION Release/)
endif()
endfunction()

find_program(CCACHE_FOUND ccache)
if(CCACHE_FOUND)
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
set(ENV{CCACHE_SLOPPINESS} pch_defines,time_macros)
endif(CCACHE_FOUND)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive --std=c++17")
if(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
if(CMAKE_CXX_COMPILER_VERSION VERSION_LESS 7.0)
message(FATAL_ERROR "Building with a gcc version less than 7.0 is not supported.")
endif()
endif()

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive --std=c++17 -Wno-attributes -pipe")
#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)

set(LUA_LIBRARIES luajit)

if(NOT CMAKE_BUILD_TYPE)
set(CMAKE_BUILD_TYPE "Release" CACHE STRING "" FORCE)
elseif(${CMAKE_BUILD_TYPE} STREQUAL "Debug")
add_definitions(-DDEBUG)
set(LUA_LIBRARIES luajit-debug)
endif()

set(LUA_FOUND true)

message("CMake build ${CMAKE_BUILD_TYPE}, CFLAGS=${CMAKE_C_FLAGS}, CXXFLAGS=${CMAKE_CXX_FLAGS}")

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)
if(EXISTS ${CMAKE_SOURCE_DIR}/Externals/cryptopp/dsa.h)
file(REMOVE_RECURSE ${CMAKE_SOURCE_DIR}/Externals/cryptopp)
file(MAKE_DIRECTORY ${CMAKE_SOURCE_DIR}/Externals/cryptopp)
endif()
find_package(GLEW REQUIRED)
find_package(FreeImage REQUIRED)
find_package(LockFile REQUIRED)
find_package(OpenAL REQUIRED)
find_package(Crypto++ REQUIRED)
find_package(PugiXML REQUIRED)
find_package(Theora REQUIRED)
find_package(OGG REQUIRED)
find_package(SDL2 REQUIRED)
find_package(LZO REQUIRED)
find_package(JPEG REQUIRED)
find_package(TBB REQUIRED)
endif()

include_directories(${LUA_INCLUDE_DIR})
Expand Down
5 changes: 3 additions & 2 deletions Externals/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
include(luajit.cmake)
add_subdirectory(luabind)
add_subdirectory(lzo)
xr_install_file(luabind)
add_subdirectory(cximage)
add_subdirectory(NVTT)
#add_subdirectory(lzo)
#add_subdirectory(NVTT)
add_subdirectory(OPCODE)
add_subdirectory(ode)
#add_subdirectory(pugixml)
Expand Down
11 changes: 8 additions & 3 deletions Externals/OPCODE/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
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)
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}/../../src
${CMAKE_CURRENT_SOURCE_DIR}/../../sdk/include
${SDL_INCLUDE_DIRS}
)

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

set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "")
target_link_libraries(${PROJECT_NAME} xrCore)
xr_install(${PROJECT_NAME})
51 changes: 28 additions & 23 deletions Externals/cximage/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,39 +2,44 @@ cmake_minimum_required(VERSION 2.8.0)
project(cximage)

set(SOURCES
ximacfg.cpp
ximaenc.cpp
ximaexif.cpp
ximage.cpp
ximainfo.cpp
ximaint.cpp
ximajpg.cpp
ximalpha.cpp
ximalyr.cpp
ximapal.cpp
ximasel.cpp
ximath.cpp
xmemfile.cpp
ximacfg.cpp
ximaenc.cpp
ximaexif.cpp
ximage.cpp
ximainfo.cpp
ximaint.cpp
ximajpg.cpp
ximalpha.cpp
ximalyr.cpp
ximapal.cpp
ximasel.cpp
ximath.cpp
xmemfile.cpp
)

set(HEADERS
xfile.h
ximacfg.h
ximadef.h
ximage.h
ximaiter.h
ximajpg.h
ximath.h
xiofile.h
xmemfile.h
xfile.h
ximacfg.h
ximadef.h
ximage.h
ximaiter.h
ximajpg.h
ximath.h
xiofile.h
xmemfile.h
)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fpermissive --std=c++14")
add_definitions(-DCXIMAGE_BUILD)

include_directories("." ${CMAKE_SOURCE_DIR})
include_directories(
${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/../../src
)

add_library(cximage STATIC ${SOURCES} ${HEADERS})

set_target_properties(cximage PROPERTIES PREFIX "")
target_link_libraries(cximage)
set_property(TARGET ${PROJECT_NAME} PROPERTY POSITION_INDEPENDENT_CODE ON)

1 change: 1 addition & 0 deletions Externals/luajit.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -319,6 +319,7 @@ endif()
add_library( ${LIB_NAME} SHARED ${LJCORE_C} ${DEPS} )
set_target_properties ( ${LIB_NAME} PROPERTIES PREFIX "" )
target_link_libraries ( ${LIB_NAME} ${LIBS} )
xr_install(${LIB_NAME})
#endif()

if(NOT ${BUILD_LIB_ONLY})
Expand Down
1 change: 1 addition & 0 deletions Externals/ode/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,4 @@ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_SOURCE_D
add_definitions(-DdSINGLE -D_SECURE_SCL=0 -DLINUX -D_cdecl= -D__forceinline=inline)

add_library(${PROJECT_NAME} SHARED ${${PROJECT_NAME}__SOURCES} ${${PROJECT_NAME}__INCLUDES})
xr_install(${PROJECT_NAME})
56 changes: 56 additions & 0 deletions cmake/FindFreeImage.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
#https://github.com/castano/nvidia-texture-tools/blob/48f5dd4603c9f8ce8d47e8547b8b3c1c71d27da7/cmake/FindFreeImage.cmake
#
# Try to find the FreeImage library and include path.
# Once done this will define
#
# FREEIMAGE_FOUND
# FREEIMAGE_INCLUDE_PATH
# FREEIMAGE_LIBRARY
#

IF (WIN32)
FIND_PATH( FREEIMAGE_INCLUDE_PATH FreeImage.h
${FREEIMAGE_ROOT_DIR}/include
${FREEIMAGE_ROOT_DIR}
DOC "The directory where FreeImage.h resides")
FIND_LIBRARY( FREEIMAGE_LIBRARY
NAMES FreeImage freeimage
PATHS
${FREEIMAGE_ROOT_DIR}/lib
${FREEIMAGE_ROOT_DIR}
DOC "The FreeImage library")
ELSE (WIN32)
FIND_PATH( FREEIMAGE_INCLUDE_PATH FreeImage.h
/usr/include
/usr/local/include
/sw/include
/opt/local/include
DOC "The directory where FreeImage.h resides")
FIND_LIBRARY( FREEIMAGE_LIBRARY
NAMES FreeImage freeimage
PATHS
/usr/lib64
/usr/lib
/usr/local/lib64
/usr/local/lib
/sw/lib
/opt/local/lib
DOC "The FreeImage library")
ENDIF (WIN32)

SET(FREEIMAGE_LIBRARIES ${FREEIMAGE_LIBRARY})

IF (FREEIMAGE_INCLUDE_PATH AND FREEIMAGE_LIBRARY)
SET( FREEIMAGE_FOUND TRUE CACHE BOOL "Set to TRUE if FreeImage is found, FALSE otherwise")
MESSAGE(STATUS "Found FreeImage: ${FREEIMAGE_INCLUDE_PATH}, ${FREEIMAGE_LIBRARY}")
ELSE (FREEIMAGE_INCLUDE_PATH AND FREEIMAGE_LIBRARY)
SET( FREEIMAGE_FOUND FALSE CACHE BOOL "Set to TRUE if FreeImage is found, FALSE otherwise")
MESSAGE(FATAL_ERROR "FreeImage not found.")
ENDIF (FREEIMAGE_INCLUDE_PATH AND FREEIMAGE_LIBRARY)

MARK_AS_ADVANCED(
FREEIMAGE_FOUND
FREEIMAGE_LIBRARY
FREEIMAGE_LIBRARIES
FREEIMAGE_INCLUDE_PATH)

Loading

0 comments on commit 5a33028

Please sign in to comment.