cmake_minimum_required(VERSION 2.8)

project(NACORE)

set(NACORE_VERSION 0.2.0)

set(NACORE_SOURCES src/avl.c src/init.c src/lv2api.c src/manifest.c)
set(NACORE_SOURCES ${NACORE_SOURCES} src/posix/dl.c src/posix/env.c src/posix/path.c)

include(FindPkgConfig)
pkg_check_modules(LV2 REQUIRED lv2core)

include_directories("${NACORE_SOURCE_DIR}" "${NACORE_SOURCE_DIR}/include" ${LV2_INCLUDE_DIRS})
add_library(nacore SHARED ${NACORE_SOURCES})
set_target_properties(nacore PROPERTIES VERSION 2.0.0 SOVERSION 2)
find_library(LIBDL dl)
if (NOT "${LIBDL}" MATCHES LIBDL-NOTFOUND)
	set(LIBS ${LIBDL})
endif ()
if ("${CMAKE_SYSTEM_NAME}" MATCHES Haiku)
	find_library(LIBROOT root)
	set(LIBS ${LIBS} ${LIBROOT})
endif ()
target_link_libraries(nacore ${LIBS})

if (NOT DEFINED LIBDIR_INSTALL)
	set(LIBDIR_INSTALL lib)
endif ()

if (NOT DEFINED INCLUDEDIR_INSTALL)
	set(INCLUDEDIR_INSTALL include)
endif ()

if (NOT DEFINED PKGCONFIGDIR_INSTALL)
	set(PKGCONFIGDIR_INSTALL "${LIBDIR_INSTALL}/pkgconfig")
endif ()

set(SO_FILE_EXT "\"${CMAKE_SHARED_MODULE_SUFFIX}\"")
configure_file("${NACORE_SOURCE_DIR}/config.h.in" "${NACORE_BINARY_DIR}/config.h" @ONLY)
configure_file("${NACORE_SOURCE_DIR}/nacore.pc.in" "${NACORE_BINARY_DIR}/nacore.pc" @ONLY)

install(TARGETS nacore DESTINATION "${LIBDIR_INSTALL}")
install(DIRECTORY include/NASPRO DESTINATION "${INCLUDEDIR_INSTALL}")
install(FILES nacore.pc DESTINATION "${PKGCONFIGDIR_INSTALL}")

set(CPACK_PACKAGE_VERSION_MAJOR 0)
set(CPACK_PACKAGE_VERSION_MINOR 2)
set(CPACK_PACKAGE_VERSION_PATCH 0)
set(CPACK_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH})
set(CPACK_SOURCE_GENERATOR TGZ)
set(CPACK_SOURCE_PACKAGE_FILE_NAME naspro-core-${CPACK_PACKAGE_VERSION})
set(CPACK_SOURCE_IGNORE_FILES
	"^${NACORE_BINARY_DIR}/CMakeCache.*"
	"^${NACORE_BINARY_DIR}/CMakeFiles.*"
	"^${NACORE_BINARY_DIR}/cmake.*"
	"^${NACORE_BINARY_DIR}/install.*"
	"^${NACORE_BINARY_DIR}/_CPack.*"
	"^${NACORE_BINARY_DIR}/CPack.*"
	"^${NACORE_BINARY_DIR}/Makefile$"
	"^${NACORE_BINARY_DIR}/naspro-.*"
	"^${NACORE_BINARY_DIR}/config.h$"
	"^${NACORE_BINARY_DIR}/nacore.pc$"
	"^${NACORE_BINARY_DIR}/.*\\\\.o$"
	"^${NACORE_BINARY_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}nacore.*${CMAKE_SHARED_LIBRARY_SUFFIX}.*$"
)

include(CPack)
