Merge pull request #4 from zwookie/master

Adjustment to how binaries are built from CMake, small README change
This commit is contained in:
JoeyDeVries
2015-04-04 13:23:51 +02:00
7 changed files with 58 additions and 35 deletions

View File

@@ -9,7 +9,11 @@ IF(NOT CMAKE_BUILD_TYPE)
ENDIF(NOT CMAKE_BUILD_TYPE)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/modules/")
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
if(WIN32)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
endif(WIN32)
link_directories(${CMAKE_SOURCE_DIR}/lib)
list(APPEND CMAKE_CXX_FLAGS "-std=c++11")
@@ -31,7 +35,7 @@ message(STATUS "Found GLEW in ${GLEW_INCLUDE_DIR}")
if(WIN32)
set(LIBS glfw3 opengl32 glew32s SOIL assimp)
elseif (UNIX)
elseif(UNIX)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall")
# Linux packages native to CMake
find_package(OpenGL REQUIRED)
@@ -48,7 +52,7 @@ elseif (UNIX)
list(APPEND LIBS ${ASSIMP_LIBRARY})
else()
set(LIBS )
endif()
endif(WIN32)
IF(APPLE)
INCLUDE_DIRECTORIES(/System/Library/Frameworks)
@@ -113,21 +117,23 @@ foreach(CHAPTER ${CHAPTERS})
)
add_executable(${DEMO} ${SOURCE})
target_link_libraries(${DEMO} ${LIBS})
set_target_properties(${DEMO}
PROPERTIES
RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin/${CHAPTER}"
)
if(WIN32)
set_target_properties(${DEMO} PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/bin/${CHAPTER}")
endif(WIN32)
# copy shader files to build directory
file(GLOB SHADERS
"src/${CHAPTER}/${DEMO}/*.vs"
"src/${CHAPTER}/${DEMO}/*.vs"
"src/${CHAPTER}/${DEMO}/*.frag"
"src/${CHAPTER}/${DEMO}/*.gs"
)
foreach(SHADER ${SHADERS})
# configure_file(${SHADER} "test")
add_custom_command(TARGET ${DEMO} PRE_BUILD
COMMAND ${CMAKE_COMMAND} -E
copy ${SHADER} $<TARGET_FILE_DIR:${DEMO}>)
if(WIN32)
# configure_file(${SHADER} "test")
add_custom_command(TARGET ${DEMO} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${SHADER} $<TARGET_FILE_DIR:${DEMO}>)
elseif(UNIX)
file(COPY ${SHADER} DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
endif(WIN32)
endforeach(SHADER)
# if compiling for visual studio, also use configure file for each project (specifically to setup working directory)
if(MSVC)
@@ -138,6 +144,7 @@ endforeach(CHAPTER)
include_directories(${CMAKE_SOURCE_DIR}/includes)
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/resources DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
if(UNIX)
file(COPY ${CMAKE_CURRENT_SOURCE_DIR}/resources DESTINATION ${CMAKE_CURRENT_BINARY_DIR})
endif(UNIX)

View File

@@ -9,5 +9,5 @@ The CMake script knows where to find the libraries so just run CMake script and
Note that you still have to manually copy the required .DLL files from the /dlls folder to your binary folder for the binaries to run.
## Linux building
First get the required packages:
Use root (sudo) and type `apt-get install libsoil-dev libglm-dev libassimp-dev libglew-dev libglfw-dev`
First make sure you have CMake, Git, and GCC by typing as root (sudo) `apt-get install g++ cmake git` and then get the required packages:
Using root (sudo) and type `apt-get install libsoil-dev libglm-dev libassimp-dev libglew-dev libglfw-dev`

View File

@@ -8,12 +8,14 @@ FIND_PATH( ASSIMP_INCLUDE_DIR assimp/mesh.h
/usr/include
/usr/local/include
/opt/local/include
${CMAKE_SOURCE_DIR}/includes
)
FIND_LIBRARY( ASSIMP_LIBRARY assimp
/usr/lib64
/usr/lib
/usr/local/lib
/opt/local/lib
${CMAKE_SOURCE_DIR}/lib
)
IF(ASSIMP_INCLUDE_DIR AND ASSIMP_LIBRARY)
SET( ASSIMP_FOUND TRUE )

View File

@@ -8,6 +8,7 @@
#
IF (WIN32)
FIND_PATH( GLEW_INCLUDE_PATH GL/glew.h
${CMAKE_SOURCE_DIR}/includes
$ENV{PROGRAMFILES}/GLEW/include
${GLEW_ROOT_DIR}/include
DOC "The directory where GL/glew.h resides")
@@ -24,6 +25,7 @@ IF (WIN32)
FIND_LIBRARY( GLEW_LIBRARY
NAMES glew GLEW glew32 glew32s
PATHS
${CMAKE_SOURCE_DIR}/lib
$ENV{PROGRAMFILES}/GLEW/lib
${PROJECT_SOURCE_DIR}/src/nvgl/glew/bin
${PROJECT_SOURCE_DIR}/src/nvgl/glew/lib

View File

@@ -17,10 +17,12 @@
set( _glfw3_HEADER_SEARCH_DIRS
"/usr/include"
"/usr/local/include"
"${CMAKE_SOURCE_DIR}/includes"
"C:/Program Files (x86)/glfw/include" )
set( _glfw3_LIB_SEARCH_DIRS
"/usr/lib"
"/usr/local/lib"
"${CMAKE_SOURCE_DIR}/lib"
"C:/Program Files (x86)/glfw/lib-msvc110" )
# Check environment for root search directory

View File

@@ -32,6 +32,7 @@
SET(_glm_HEADER_SEARCH_DIRS
"/usr/include"
"/usr/local/include"
"${CMAKE_SOURCE_DIR}/includes"
"C:/Program Files (x86)/glm" )
# check environment variable
SET(_glm_ENV_ROOT_DIR "$ENV{GLM_ROOT_DIR}")

View File

@@ -9,25 +9,34 @@
#
# author: Kazunori Kimura
# email : kazunori.abu@gmail.com
find_path(SOIL_INCLUDE_DIR_TMP SOIL.h
HINTS ${SOIL_ROOT_DIR}
PATH_SUFFIXES include/SOIL SOIL include
)
if(${SOIL_INCLUDE_DIR_TMP} STREQUAL "SOIL_INCLUDE_DIR_TMP-NOTFOUND")
set(SOIL_INCLUDE_DIR ${SOIL_INCLUDE_DIR_TMP})
else()
string(REGEX REPLACE "(.*)/SOIL" "\\1" SOIL_INCLUDE_DIR ${SOIL_INCLUDE_DIR_TMP})
endif()
#
# revisions: github.com/zwookie
find_library(SOIL_LIBRARY
NAMES SOIL
HINTS ${SOIL_ROOT_DIR}
PATH_SUFFIXES lib
find_path(SOIL_INCLUDE_DIR SOIL.h
/usr/include
/usr/local/include
/opt/local/include
${CMAKE_SOURCE_DIR}/includes
)
unset(INCLUDE_SEARCH_PATH)
unset(LIB_SEARCH_PATH)
unset(SOIL_INCLUDE_DIR_TMP)
include(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(SOIL
REQUIRED_VARS SOIL_LIBRARY SOIL_INCLUDE_DIR)
find_library(SOIL_LIBRARY SOIL
/usr/lib64
/usr/lib
/usr/local/lib
/opt/local/lib
${CMAKE_SOURCE_DIR}/lib
)
IF(SOIL_INCLUDE_DIR AND SOIL_LIBRARY)
SET( SOIL_FOUND TRUE )
SET( SOIL_LIBRARIES ${SOIL_LIBRARY} )
ENDIF(SOIL_INCLUDE_DIR AND SOIL_LIBRARY)
IF(SOIL_FOUND)
IF(NOT SOIL_FIND_QUIETLY)
MESSAGE(STATUS "Found SOIL: ${SOIL_LIBRARY}")
ENDIF(NOT SOIL_FIND_QUIETLY)
ELSE(SOIL_FOUND)
IF(SOIL_FIND_REQUIRED)
MESSAGE(FATAL_ERROR "Could not find libSOIL")
ENDIF(SOIL_FIND_REQUIRED)
ENDIF(SOIL_FOUND)