cmake_minimum_required(VERSION 2.8)

project(PERMAFROST)

set(PERMAFROST_VERSION 0.2.0)

set(PERMAFROST_SOURCES src/main.c src/util.c src/list.c src/expr.c src/scanner.c src/parser.c src/parser.tab.c src/macro.c src/schedule.c src/compile.c)

include_directories("${PERMAFROST_SOURCE_DIR}")

add_executable(permafrost ${PERMAFROST_SOURCES})
target_link_libraries(permafrost m)

if (NOT DEFINED BINDIR_INSTALL)
	set(BINDIR_INSTALL bin)
endif ()

if (NOT DEFINED DATADIR_INSTALL)
	set(DATADIR_INSTALL "${CMAKE_INSTALL_PREFIX}/share/permafrost")
endif ()

configure_file("${PERMAFROST_SOURCE_DIR}/config.h.in" "${PERMAFROST_BINARY_DIR}/config.h" @ONLY)

install(TARGETS permafrost DESTINATION "${BINDIR_INSTALL}")
install(DIRECTORY "${PERMAFROST_SOURCE_DIR}/lib" DESTINATION "${DATADIR_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 permafrost-${CPACK_PACKAGE_VERSION})
set(CPACK_SOURCE_IGNORE_FILES
	"^${PERMAFROST_BINARY_DIR}/CMakeCache.*"
	"^${PERMAFROST_BINARY_DIR}/CMakeFiles.*"
	"^${PERMAFROST_BINARY_DIR}/cmake.*"
	"^${PERMAFROST_BINARY_DIR}/install.*"
	"^${PERMAFROST_BINARY_DIR}/_CPack.*"
	"^${PERMAFROST_BINARY_DIR}/CPack.*"
	"^${PERMAFROST_BINARY_DIR}/Makefile$"
	"^${PERMAFROST_BINARY_DIR}/permafrost-.*"
	"^${PERMAFROST_BINARY_DIR}/config.h$"
	"^${PERMAFROST_BINARY_DIR}/.*\\\\.o$"
	"^${PERMAFROST_BINARY_DIR}/permafrost.*$"
)

include(CPack)
