some light refactoring in interface CMakeLists

This commit is contained in:
Stephen Birarda 2013-04-12 13:29:27 -07:00
parent 96d3f5a27d
commit aff3732052

View file

@ -1,18 +1,14 @@
cmake_minimum_required(VERSION 2.8) cmake_minimum_required(VERSION 2.8)
set(TARGET_NAME interface)
project(${TARGET_NAME})
# setup for find modules # setup for find modules
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../cmake/modules/") set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_CURRENT_SOURCE_DIR}/../cmake/modules/")
set(GLM_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external) set(GLM_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external)
set(LODEPNG_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/LodePNG) set(LODEPNG_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/LodePNG)
set(PORTAUDIO_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/portaudio) set(PORTAUDIO_DIR ${CMAKE_CURRENT_SOURCE_DIR}/external/portaudio)
# set up the external glm library
set(MACRO_DIR ../cmake/macros)
include(${MACRO_DIR}/IncludeGLM.cmake)
include_glm(interface ${MACRO_DIR})
project(interface)
if (APPLE) if (APPLE)
set(GL_HEADERS "#include <GLUT/glut.h>\n#include <OpenGL/glext.h>") set(GL_HEADERS "#include <GLUT/glut.h>\n#include <OpenGL/glext.h>")
else (APPLE) else (APPLE)
@ -25,6 +21,11 @@ if (WIN32)
set(GL_HEADERS "#define GLEW_STATIC\n#define FREEGLUT_STATIC\n#define FREEGLUT_LIB_PRAGMAS 0\n#include <GL/glew.h>\n#include <GL/wglew.h>\n#include <GL/freeglut_std.h>\n#include <GL/freeglut_ext.h>") set(GL_HEADERS "#define GLEW_STATIC\n#define FREEGLUT_STATIC\n#define FREEGLUT_LIB_PRAGMAS 0\n#include <GL/glew.h>\n#include <GL/wglew.h>\n#include <GL/freeglut_std.h>\n#include <GL/freeglut_ext.h>")
endif (WIN32) endif (WIN32)
# set up the external glm library
set(MACRO_DIR ../cmake/macros)
include(${MACRO_DIR}/IncludeGLM.cmake)
include_glm(${TARGET_NAME} ${MACRO_DIR})
# create the InterfaceConfig.h file based on GL_HEADERS above # create the InterfaceConfig.h file based on GL_HEADERS above
configure_file(InterfaceConfig.h.in ${PROJECT_BINARY_DIR}/includes/InterfaceConfig.h) configure_file(InterfaceConfig.h.in ${PROJECT_BINARY_DIR}/includes/InterfaceConfig.h)
@ -49,14 +50,14 @@ if (APPLE)
endif (APPLE) endif (APPLE)
# create the executable, make it a bundle on OS X # create the executable, make it a bundle on OS X
add_executable(interface MACOSX_BUNDLE ${INTERFACE_SRCS}) add_executable(${TARGET_NAME} MACOSX_BUNDLE ${INTERFACE_SRCS})
# link in the hifi shared library # link in the hifi shared library
include(../cmake/macros/LinkHifiLibrary.cmake) include(${MACRO_DIR}/LinkHifiLibrary.cmake)
link_hifi_library(shared interface) link_hifi_library(shared ${TARGET_NAME})
# link in the hifi voxels library # link in the hifi voxels library
link_hifi_library(voxels interface) link_hifi_library(voxels ${TARGET_NAME})
# find required libraries # find required libraries
find_package(GLM REQUIRED) find_package(GLM REQUIRED)
@ -74,7 +75,7 @@ if (NOT APPLE)
find_package(OpenGL REQUIRED) find_package(OpenGL REQUIRED)
find_package(GLUT REQUIRED) find_package(GLUT REQUIRED)
include_directories(${GLUT_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR}) include_directories(${GLUT_INCLUDE_DIR} ${OPENGL_INCLUDE_DIR})
target_link_libraries(interface ${OPENGL_LIBRARY}) target_link_libraries(${TARGET_NAME} ${OPENGL_LIBRARY})
else (NOT APPLE) else (NOT APPLE)
# link in required OS X frameworks and include the right GL headers # link in required OS X frameworks and include the right GL headers
find_library(AudioToolbox AudioToolbox) find_library(AudioToolbox AudioToolbox)
@ -84,13 +85,13 @@ else (NOT APPLE)
find_library(Carbon Carbon) find_library(Carbon Carbon)
find_library(GLUT GLUT) find_library(GLUT GLUT)
find_library(OpenGL OpenGL) find_library(OpenGL OpenGL)
target_link_libraries(interface ${AudioToolbox} ${AudioUnit} ${CoreAudio} target_link_libraries(${TARGET_NAME} ${AudioToolbox} ${AudioUnit} ${CoreAudio}
${CoreServices} ${Carbon} ${GLUT} ${OpenGL}) ${CoreServices} ${Carbon} ${GLUT} ${OpenGL})
endif (NOT APPLE) endif (NOT APPLE)
# link target to external libraries # link target to external libraries
if (WIN32) if (WIN32)
target_link_libraries(interface target_link_libraries(${TARGET_NAME}
${CMAKE_CURRENT_SOURCE_DIR}/external/glut/Release/glew32.lib ${CMAKE_CURRENT_SOURCE_DIR}/external/glut/Release/glew32.lib
${CMAKE_CURRENT_SOURCE_DIR}/external/glut/Release/freeglut.lib ${CMAKE_CURRENT_SOURCE_DIR}/external/glut/Release/freeglut.lib
${CMAKE_CURRENT_SOURCE_DIR}/external/glut/Release/pthread_lib.lib ${CMAKE_CURRENT_SOURCE_DIR}/external/glut/Release/pthread_lib.lib
@ -98,7 +99,7 @@ if (WIN32)
wsock32.lib wsock32.lib
) )
else (WIN32) else (WIN32)
target_link_libraries(interface ${LODEPNG_LIBRARY}) target_link_libraries(${TARGET_NAME} ${LODEPNG_LIBRARY})
# include PortAudio as external project # include PortAudio as external project
include(ExternalProject) include(ExternalProject)
@ -113,7 +114,7 @@ else (WIN32)
) )
# make PortAudio a dependency of the interface executable # make PortAudio a dependency of the interface executable
add_dependencies(interface portaudio) add_dependencies(${TARGET_NAME} portaudio)
# include the PortAudio headers # include the PortAudio headers
ExternalProject_Get_Property(portaudio source_dir) ExternalProject_Get_Property(portaudio source_dir)
@ -121,7 +122,7 @@ else (WIN32)
# link the PortAudio library # link the PortAudio library
ExternalProject_Get_Property(portaudio binary_dir) ExternalProject_Get_Property(portaudio binary_dir)
target_link_libraries(interface ${binary_dir}/lib/.libs/libportaudio.a) target_link_libraries(${TARGET_NAME} ${binary_dir}/lib/.libs/libportaudio.a)
# link required libraries on UNIX # link required libraries on UNIX
if (UNIX AND NOT APPLE) if (UNIX AND NOT APPLE)
@ -130,7 +131,7 @@ else (WIN32)
find_package(ALSA) find_package(ALSA)
find_package(Jack) find_package(Jack)
target_link_libraries(interface target_link_libraries(${TARGET_NAME}
${CMAKE_THREAD_LIBS_INIT} ${CMAKE_THREAD_LIBS_INIT}
${LIBRT_LIBRARIES} ${LIBRT_LIBRARIES}
${JACK_LIBRARIES} ${JACK_LIBRARIES}
@ -141,7 +142,7 @@ else (WIN32)
endif (WIN32) endif (WIN32)
# install command for OS X bundle # install command for OS X bundle
INSTALL(TARGETS interface INSTALL(TARGETS ${TARGET_NAME}
BUNDLE DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/install COMPONENT Runtime BUNDLE DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/install COMPONENT Runtime
RUNTIME DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/install COMPONENT Runtime RUNTIME DESTINATION ${CMAKE_CURRENT_BINARY_DIR}/install COMPONENT Runtime
) )