cmake_minimum_required(VERSION 3.1.0)
set(PROJECT_NAME "plv8")
set(PROJECT_ID "plv8")
set(VENDOR "")
set(VERSION_MAJOR "3")
set(VERSION_MINOR "1")
set(VERSION_PATCH "0")
set(VERSION_FULL "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
project("${PROJECT_ID}")
set(POSTGRESQL_DIR "${CMAKE_INSTALL_PREFIX}"
CACHE PATH "PostgreSQL binary directory")
set(POSTGRESQL_VERSION "unknown"
CACHE STRING "PostgreSQL version")
set(LIBRARY_NAME "lib${PROJECT_ID}")
set(EXTENSION_DIR "lib")
set(EXTENSION_DATA_DIR "share/extension")
set(DOCUMENT_DIR "share/${PROJECT_ID}")
set(SOURCES
"coffee-script.cc"
"livescript.cc"
"../plv8.cc"
"../plv8_func.cc"
"../plv8_param.cc"
"../plv8_type.cc")
include_directories(
"${POSTGRESQL_DIR}/include/server/port/win32_msvc"
"${POSTGRESQL_DIR}/include/server/port/win32"
"${POSTGRESQL_DIR}/include/server"
"${POSTGRESQL_DIR}/include"
"vendor/v8/include"
".")
link_directories(
"${POSTGRESQL_DIR}/lib")
add_library("${LIBRARY_NAME}" SHARED ${SOURCES})
set_target_properties("${LIBRARY_NAME}"
PROPERTIES
OUTPUT_NAME "${PROJECT_ID}")
set_source_files_properties(${SOURCES}
PROPERTIES
COMPILE_FLAGS "/EHsc")
target_link_libraries("${LIBRARY_NAME}"
"postgres.lib"
"vendor/v8/out.gn/x64.release/v8.dll"
"vendor/v8/out.gn/x64.release/v8_libbase.dll"
"vendor/v8/out.gn/x64.release/v8_libplatform.dll")
install(TARGETS "${LIBRARY_NAME}"
DESTINATION "${EXTENSION_DIR}")
install(FILES
"${PROJECT_ID}.control"
DESTINATION "${EXTENSION_DATA_DIR}")
install(FILES
"plcoffee.control"
DESTINATION "${EXTENSION_DATA_DIR}")
install(FILES
"plls.control"
DESTINATION "${EXTENSION_DATA_DIR}")
install(FILES
"${PROJECT_ID}--${VERSION_FULL}.sql"
DESTINATION "${EXTENSION_DATA_DIR}")
install(FILES
"plcoffee--${VERSION_FULL}.sql"
DESTINATION "${EXTENSION_DATA_DIR}")
install(FILES
"plls--${VERSION_FULL}.sql"
DESTINATION "${EXTENSION_DATA_DIR}")
install(FILES
"./vendor/v8/out.gn/x64.release/v8.dll"
DESTINATION "bin")
install(FILES
"./vendor/v8/out.gn/x64.release/v8_libbase.dll"
DESTINATION "bin")
install(FILES
"./vendor/v8/out.gn/x64.release/v8_libplatform.dll"
DESTINATION "bin")
set(CPACK_GENERATOR "ZIP")
set(CPACK_INCLUDE_TOPLEVEL_DIRECTORY OFF)
set(CPACK_PACKAGE_VERSION_MAJOR "${VERSION_MAJOR}")
set(CPACK_PACKAGE_VERSION_MINOR "${VERSION_MINOR}")
set(CPACK_PACKAGE_VERSION_PATCH "${VERSION_MICRO}")
set(CPACK_PACKAGE_VENDOR "${VENDOR}")
if(CMAKE_CL_64)
set(PLV8_SYSTEM_NAME "x64")
else()
set(PLV8_SYSTEM_NAME "x86")
endif()
set(CPACK_PACKAGE_FILE_NAME
"${PROJECT_ID}-${VERSION_FULL}-postgresql-${POSTGRESQL_VERSION}-${PLV8_SYSTEM_NAME}")
include(CPack)