cmake_minimum_required(VERSION 2.6)

set(CMAKE_CONFIGURATION_TYPES "Release;RelWithDebInfo" CACHE STRING "Configurations" FORCE)

project(Aur2CsvParticles)

#############################################################################
#Globals
set(OUTPUT_DIR "${PROJECT_BINARY_DIR}/bin/")
set(Aur2CsvParticles Aur2CsvParticles)

set(PHOENIX_SDK_DIR CACHE PATH "")
option(USE_PHOENIX_SDK_DYNAMIC_LIB "Build shared libraries" ON)

#Change the output location settings
SET(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${OUTPUT_DIR})
SET(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${OUTPUT_DIR})
SET(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${OUTPUT_DIR})
SET(EXECUTABLE_OUTPUT_PATH {OUTPUT_DIR})

foreach( OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES} )
	string( TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG )
	set( CMAKE_RUNTIME_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${OUTPUT_DIR} )
	set( CMAKE_LIBRARY_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${OUTPUT_DIR} )
	set( CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${OUTPUTCONFIG} ${OUTPUT_DIR} )
endforeach( OUTPUTCONFIG CMAKE_CONFIGURATION_TYPES )

#############################################################################
#lib dirs
link_directories(${PHOENIX_SDK_DIR}/lib/) #Phoenix SDK Lib dir


#############################################################################
#project files
add_executable(Aur2CsvParticles
	main.cpp
	ParticleExporter.h
	ParticleExporter.cpp
)

#############################################################################
#include dirs
include_directories(./)
include_directories(${PHOENIX_SDK_DIR}/include/) #Phoenix SDK Include dir

#############################################################################



#add additional lib dependencies
if(USE_PHOENIX_SDK_DYNAMIC_LIB)
	target_link_libraries(Aur2CsvParticles aurloader)
else()
	if(UNIX)
		# Under non Windows platforms it is convenient to use the already installed zlib.
		find_package(zlib REQUIRED)
		target_link_libraries(Aur2CsvParticles ${ZLIB_LIBRARIES})
	else()
		# Under Windows build zlib using it's default CMakeLists.txt
		add_subdirectory(external_libs/zlib)
		target_link_libraries(Aur2CsvParticles zlibstatic)
	endif()

	target_link_libraries(Aur2CsvParticles aurloader_s)
	target_link_libraries(Aur2CsvParticles vutils_s)
	if(UNIX)
		target_link_libraries(Aur2CsvParticles rt)
	endif()
endif()

#Additional settings
if(USE_PHOENIX_SDK_DYNAMIC_LIB)
	add_definitions(-DAURLOADER_DYNAMIC_LIB)
endif()

if(UNIX)
	add_definitions(-m64)
	find_package( Threads )
	target_link_libraries(Aur2CsvParticles ${CMAKE_THREAD_LIBS_INIT})
endif(UNIX)

if(WIN32 AND USE_PHOENIX_SDK_DYNAMIC_LIB)
	file(COPY ${PHOENIX_SDK_DIR}/lib/aurloader.dll DESTINATION ${OUTPUT_DIR}/)
endif()
