# This file is copyrighted under the BSD-license for buildsystem files of KDE
# copyright 2010, Patrick Spendrin <ps_ml@gmx.de>

project(libxslt)

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules)

cmake_minimum_required(VERSION 2.6)
set(PACKAGE_NAME "libxslt")
set(PACKAGE_VERSION "1.1.26")
set(PACKAGE_BUGREPORT) 
set(PACKAGE_STRING "libxslt")
set(VERSION "1.1.26")
set(PACKAGE_VERSION "${VERSION}")

set(LIBXSLT_DOTTED_VERSION "${VERSION}")
set(LIBXSLT_VERSION_NUMBER "10126")
set(LIBXSLT_VERSION_EXTRA "-GITv${VERSION}")

if(WINCE)
    find_package(Wcecompat REQUIRED)
    include_directories(${WCECOMPAT_INCLUDE_DIR})
endif(WINCE)

find_package(LibXml2 REQUIRED)
include(ConfigureChecks.cmake)
include_directories(
    ${CMAKE_BINARY_DIR} 
    ${CMAKE_SOURCE_DIR} 
    ${CMAKE_SOURCE_DIR}/libxslt 
    ${CMAKE_SOURCE_DIR}/libexslt
    ${LIBXML2_INCLUDE_DIR}
    ${CMAKE_INCLUDE_PATH}
)
if(MSVC)
    add_definitions(-D_CRT_SECURE_NO_WARNINGS)
endif(MSVC)

set(xslt_SRCS
libxslt/attrvt.c
libxslt/xslt.c
libxslt/xsltlocale.c
libxslt/xsltutils.c
libxslt/pattern.c
libxslt/templates.c
libxslt/variables.c
libxslt/keys.c
libxslt/numbers.c
libxslt/extensions.c
libxslt/extra.c
libxslt/functions.c
libxslt/namespaces.c
libxslt/imports.c
libxslt/attributes.c
libxslt/documents.c
libxslt/preproc.c
libxslt/transform.c
libxslt/security.c
)

add_library(xslt SHARED ${xslt_SRCS})
#set_target_properties(xslt PROPERTIES DEFINE_SYMBOL IN_LIBXSLT)
target_link_libraries(xslt ${LIBXML2_LIBRARIES})
target_link_libraries(xslt ${LIBXML2_LIBRARIES})
if(MSVC)
    set_target_properties(xslt PROPERTIES OUTPUT_NAME libxslt)
endif(MSVC)
if(WINCE)
    target_link_libraries(xslt ${WCECOMPAT_LIBRARIES})
endif(WINCE)

set(exslt_SRCS
libexslt/exslt.c
libexslt/common.c
libexslt/crypto.c
libexslt/math.c
libexslt/sets.c
libexslt/functions.c
libexslt/strings.c
libexslt/date.c
libexslt/saxon.c
libexslt/dynamic.c
)

add_library(exslt SHARED ${exslt_SRCS})
target_link_libraries(exslt xslt)
if(MSVC)
    set_target_properties(exslt PROPERTIES OUTPUT_NAME libexslt)
endif(MSVC)

set(xsltproc_SRCS 
xsltproc/xsltproc.c
)

add_executable(xsltproc ${xsltproc_SRCS})
target_link_libraries(xsltproc xslt exslt)

install(TARGETS xslt exslt xsltproc RUNTIME DESTINATION bin
                                    LIBRARY DESTINATION lib
                                    ARCHIVE DESTINATION lib)

file(GLOB LIBXSLT_HDRS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/libxslt/*.h")
file(GLOB LIBEXSLT_HDRS RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "${CMAKE_CURRENT_SOURCE_DIR}/libexslt/*.h")
install(FILES ${LIBXSLT_HDRS} DESTINATION include/libxslt)
install(FILES ${LIBEXSLT_HDRS} DESTINATION include/libexslt)

install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libxslt/xsltconfig.h DESTINATION include/libxslt)
#install(FILES ${CMAKE_CURRENT_BINARY_DIR}/libexslt/exsltconfig.h DESTINATION include/libexslt)


#install(FILES doc/xmlwf.1 DESTINATION man/man1)
