133 lines
4.9 KiB
CMake
133 lines
4.9 KiB
CMake
cmake_minimum_required(VERSION 3.2)
|
|
project(glTest)
|
|
|
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -DGLEW_STATIC -O0 -g")
|
|
set(CMAKE_BUILD_TYPE DEBUG)
|
|
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR}/bin)
|
|
|
|
if(APPLE)
|
|
find_library(COCOA_FRAMEWORK Cocoa)
|
|
find_library(OPENGL_FRAMEWORK OpenGL)
|
|
find_library(IOKIT_FRAMEWORK IOKit)
|
|
find_library(COREVIDEO_FRAMEWORK CoreVideo)
|
|
set(REQUIRED_LIBRARIES ${COCOA_FRAMEWORK} ${OPENGL_FRAMEWORK} ${IOKIT_FRAMEWORK} ${COREVIDEO_FRAMEWORK})
|
|
else()
|
|
find_package(OpenGL REQUIRED)
|
|
find_library(x11 NAMES X11)
|
|
find_library(xrandr NAMES Xrandr)
|
|
find_library(xi NAMES Xi)
|
|
find_library(xxf86vm NAMES Xxf86vm)
|
|
find_library(pthread NAMES pthread)
|
|
find_library(Xinerama NAMES Xinerama)
|
|
find_library(Xcursor NAMES Xcursor)
|
|
set(REQUIRED_LIBRARIES rt asound ${OPENGL_LIBRARIES} ${x11} ${xrandr} ${xi} ${xxf86vm} ${Xinerama} ${Xcursor} ${pthread})
|
|
endif()
|
|
|
|
INCLUDE(ExternalProject)
|
|
SET_DIRECTORY_PROPERTIES(PROPERTIES EP_PREFIX ${CMAKE_BINARY_DIR}/ThirdParty)
|
|
|
|
ExternalProject_Add(
|
|
glfw
|
|
URL http://netcologne.dl.sourceforge.net/project/glfw/glfw/3.1.1/glfw-3.1.1.zip
|
|
TIMEOUT 100
|
|
CMAKE_ARGS -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=${CMAKE_SOURCE_DIR}/lib
|
|
-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=${CMAKE_SOURCE_DIR}/lib
|
|
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
|
|
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
|
|
INSTALL_COMMAND ""
|
|
LOG_DOWNLOAD ON
|
|
LOG_CONFIGURE ON
|
|
LOG_BUILD ON)
|
|
|
|
ExternalProject_Get_Property(glfw source_dir)
|
|
ExternalProject_Get_Property(glfw binary_dir)
|
|
include_directories(${source_dir}/include)
|
|
|
|
ExternalProject_Add(
|
|
glew
|
|
URL http://vorboss.dl.sourceforge.net/project/glew/glew/1.12.0/glew-1.12.0.zip
|
|
CONFIGURE_COMMAND ""
|
|
BUILD_COMMAND "make"
|
|
BUILD_IN_SOURCE 1
|
|
INSTALL_COMMAND cp ${CMAKE_BINARY_DIR}/ThirdParty/src/glew/lib/libGLEW.a ${CMAKE_SOURCE_DIR}/lib
|
|
LOG_DOWNLOAD ON
|
|
LOG_CONFIGURE ON
|
|
LOG_BUILD ON
|
|
)
|
|
|
|
ExternalProject_Get_Property(glew source_dir)
|
|
ExternalProject_Get_Property(glew binary_dir)
|
|
include_directories(${source_dir}/include)
|
|
set(GLEW_SRC_DIR ${source_dir})
|
|
|
|
ExternalProject_Add(
|
|
glm
|
|
URL http://vorboss.dl.sourceforge.net/project/ogl-math/glm-0.9.6.3/glm-0.9.6.3.zip
|
|
TIMEOUT 100
|
|
CMAKE_ARGS -DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_DEBUG:PATH=${CMAKE_SOURCE_DIR}/lib
|
|
-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY_RELEASE:PATH=${CMAKE_SOURCE_DIR}/lib
|
|
-DCMAKE_CXX_FLAGS=${CMAKE_CXX_FLAGS}
|
|
-DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE}
|
|
INSTALL_COMMAND ""
|
|
LOG_DOWNLOAD ON
|
|
LOG_CONFIGURE ON
|
|
LOG_BUILD ON)
|
|
|
|
ExternalProject_Get_Property(glm source_dir)
|
|
ExternalProject_Get_Property(glm binary_dir)
|
|
include_directories(${source_dir})
|
|
|
|
ExternalProject_Add(
|
|
portaudio
|
|
URL http://www.portaudio.com/archives/pa_stable_v19_20140130.tgz
|
|
TIMEOUT 100
|
|
CONFIGURE_COMMAND ${CMAKE_BINARY_DIR}/ThirdParty/src/portaudio/configure --enable-cxx
|
|
BUILD_COMMAND "/usr/bin/make"
|
|
BUILD_IN_SOURCE 1
|
|
INSTALL_COMMAND cp ${CMAKE_BINARY_DIR}/ThirdParty/src/portaudio/lib/.libs/libportaudio.a ${CMAKE_SOURCE_DIR}/lib
|
|
LOG_DOWNLOAD ON
|
|
LOG_CONFIGURE ON
|
|
LOG_BUILD ON)
|
|
|
|
ExternalProject_Get_Property(portaudio source_dir)
|
|
ExternalProject_Get_Property(portaudio binary_dir)
|
|
include_directories(${source_dir}/include)
|
|
|
|
ExternalProject_Add(
|
|
libsndfile
|
|
URL "http://www.mega-nerd.com/libsndfile/files/libsndfile-1.0.25.tar.gz"
|
|
CONFIGURE_COMMAND ${CMAKE_BINARY_DIR}/ThirdParty/src/libsndfile/configure --disable-external-libs
|
|
BUILD_COMMAND "/usr/bin/make"
|
|
UPDATE_COMMAND ""
|
|
INSTALL_COMMAND cp ${CMAKE_BINARY_DIR}/ThirdParty/src/libsndfile/src/.libs/libsndfile.a ${CMAKE_SOURCE_DIR}/lib
|
|
BUILD_IN_SOURCE 1
|
|
LOG_DOWNLOAD ON
|
|
LOG_CONFIGURE ON
|
|
LOG_BUILD ON
|
|
)
|
|
|
|
ExternalProject_Get_Property(libsndfile source_dir)
|
|
ExternalProject_Get_Property(libsndfile binary_dir)
|
|
#include_directories(${source_dir}/include)
|
|
|
|
ExternalProject_Add(
|
|
fftw
|
|
URL "http://www.fftw.org/fftw-3.3.4.tar.gz"
|
|
CONFIGURE_COMMAND ${CMAKE_BINARY_DIR}/ThirdParty/src/fftw/configure --enable-float
|
|
BUILD_COMMAND "/usr/bin/make"
|
|
UPDATE_COMMAND ""
|
|
INSTALL_COMMAND cp ${CMAKE_BINARY_DIR}/ThirdParty/src/fftw/.libs/libfftw3f.a ${CMAKE_SOURCE_DIR}/lib
|
|
BUILD_IN_SOURCE 1
|
|
LOG_DOWNLOAD ON
|
|
LOG_CONFIGURE ON
|
|
LOG_BUILD ON
|
|
)
|
|
ExternalProject_Get_Property(fftw source_dir)
|
|
include_directories(${source_dir}/api)
|
|
|
|
set(SOURCE_FILES src/main.cpp)
|
|
add_executable(glTest ${SOURCE_FILES} src/ShaderProgram.cpp src/ShaderProgram.h src/Mesh.cpp src/Mesh.h src/vertex.h src/IGLObject.h src/GLObject.cpp src/GLObject.h src/WaveMesh.cpp src/WaveMesh.h src/AudioPlayer.cpp src/AudioPlayer.h src/ISndSource.h src/WavSource.cpp src/WavSource.h src/SpectralMesh.cpp src/SpectralMesh.h)
|
|
add_dependencies(glTest glfw glew glm portaudio libsndfile fftw)
|
|
target_link_libraries(glTest ${GLFW_LIBRARIES} ${REQUIRED_LIBRARIES} ${CMAKE_SOURCE_DIR}/lib/libglfw3.a ${CMAKE_SOURCE_DIR}/lib/libGLEW.a
|
|
${CMAKE_SOURCE_DIR}/lib/libportaudio.a ${CMAKE_SOURCE_DIR}/lib/libsndfile.a ${CMAKE_SOURCE_DIR}/lib/libfftw3f.a)
|