openalbridge/CMakeLists.txt
author koda
Tue, 30 Jun 2009 12:31:32 +0000
changeset 2213 bd51bbf06033
parent 2212 6b5da1a2765a
child 2216 82e7da49c26a
permissions -rw-r--r--
-Smaxx's porting of the library to MSVC compilers -library is now ANSI C -interface headers reworked

find_package(OpenAL REQUIRED)
find_package(OggVorbis REQUIRED)
include_directories(${OPENAL_INCLUDE_DIR})
include_directories(${OGGVORBIS_INCLUDE_DIRS})

#set flag configuration for build type
set(CMAKE_C_FLAGS "-Wall -pipe")
set(CMAKE_C_FLAGS_RELEASE "-w -O2 -fomit-frame-pointer")
set(CMAKE_C_FLAGS_DEBUG "-O0 -g -DDEBUG")

#set destination directory for library
set(LIBRARY_OUTPUT_PATH ${EXECUTABLE_OUTPUT_PATH})

#list of source files for libraries
set(openal_src
	openalwrap.c loaders.c endianness.c wrappers.c
)

#build a static library for human systems
set (build_type STATIC)

#visualstudio doesn't like static linking, so we're building a shared library just for it
if(MSVC)
#workaround for visualstudio (wants headers in the source list)
	set(openal_src
		openalwrap.h loaders.h endianness.h wrappers.h winstdint.h globals.h oggvorbis.h ${openal_src}
	)
#deps for the shared library
	link_libraries(${OPENAL_LIBRARY})
	link_libraries(${OGG_LIBRARY})
	link_libraries(${VORBIS_LIBRARY})
	link_libraries(${VORBISFILE_LIBRARY})
#build a shared library
	set (build_type SHARED)
endif(MSVC)

#compiles and links actual library
add_library (openalbridge ${build_type} ${openal_src})

if(WIN32)
	SET_TARGET_PROPERTIES(openalbridge PROPERTIES LINK_FLAGS /DEF:openalbridge.def)
#install it in the executable directory
	install(TARGETS openalbridge DESTINATION bin)
endif(WIN32)