vcpkg/ports/atk/CMakeLists.txt
2017-01-29 18:32:50 +01:00

130 lines
3.8 KiB
CMake

cmake_minimum_required(VERSION 3.0)
project(atk)
set(ATK_LIB_SUFFIX 1.0)
set(ATK_DLL_SUFFIX 1)
set(GLIB_LIB_VERSION 2.0)
if(BUILD_SHARED_LIBS)
set(ATK_EXPORT_MACRO DLL_EXPORT)
endif()
# generate atkmarshal.c and atkmarshal.h source files
# glib-genmarshal should be installed along with glib
if(NOT EXISTS ${CMAKE_SOURCE_DIR}/atk/atkmarshal.h OR NOT EXISTS ${CMAKE_SOURCE_DIR}/atk/atkmarshal.c)
find_program(GLIB_GENMARSHAL glib-genmarshal PATH_SUFFIXES glib)
execute_process(
COMMAND ${GLIB_GENMARSHAL} --prefix=atk_marshal atkmarshal.list --header
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/atk
OUTPUT_FILE ${CMAKE_SOURCE_DIR}/atk/atkmarshal.h)
execute_process(
COMMAND ${GLIB_GENMARSHAL} --prefix=atk_marshal atkmarshal.list --body
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/atk
OUTPUT_FILE ${CMAKE_SOURCE_DIR}/atk/atkmarshal.c)
endif()
configure_file(config.h.win32 ${CMAKE_SOURCE_DIR}/config.h COPYONLY)
add_definitions(-DHAVE_CONFIG_H)
include_directories(. ./atk)
find_path(GLIB_INCLUDE_DIR glib.h)
find_library(GLIB_GLIB_LIBRARY glib-${GLIB_LIB_VERSION})
find_library(GLIB_GOBJECT_LIBRARY gobject-${GLIB_LIB_VERSION})
find_library(GLIB_GMODULE_LIBRARY gmodule-${GLIB_LIB_VERSION})
set(GLIB_LIBRARIES ${GLIB_GLIB_LIBRARY} ${GLIB_GOBJECT_LIBRARY} ${GLIB_GMODULE_LIBRARY})
find_path(LIBINTL_INCLUDE_DIR libintl.h)
find_library(LIBINTL_LIBRARY NAMES libintl intl)
set(ATK_SOURCES
atk/atkaction.c
atk/atkcomponent.c
atk/atkdocument.c
atk/atkeditabletext.c
atk/atkgobjectaccessible.c
atk/atkhyperlink.c
atk/atkhyperlinkimpl.c
atk/atkhypertext.c
atk/atkimage.c
atk/atknoopobject.c
atk/atknoopobjectfactory.c
atk/atkobject.c
atk/atkobjectfactory.c
atk/atkplug.c
atk/atkprivate.c
atk/atkrange.c
atk/atkregistry.c
atk/atkrelation.c
atk/atkrelationset.c
atk/atkselection.c
atk/atksocket.c
atk/atkstate.c
atk/atkstateset.c
atk/atkstreamablecontent.c
atk/atktable.c
atk/atktablecell.c
atk/atktext.c
atk/atkutil.c
atk/atkmisc.c
atk/atkvalue.c
atk/atkversion.c
atk/atkwindow.c
atk/atk-enum-types.c)
add_library(atk ${ATK_SOURCES})
target_compile_definitions(atk PRIVATE ATK_COMPILATION ${ATK_EXPORT_MACRO} G_DISABLE_SINGLE_INCLUDES ATK_LOCALEDIR="/dummy/share/locale")
target_link_libraries(atk ${LIBINTL_LIBRARY} ${GLIB_LIBRARIES})
target_include_directories(atk PRIVATE ${GLIB_INCLUDE_DIR} ${LIBINTL_INCLUDE_DIR})
set_target_properties(atk PROPERTIES
OUTPUT_NAME atk-${ATK_DLL_SUFFIX}
ARCHIVE_OUTPUT_NAME atk-${ATK_LIB_SUFFIX})
install(TARGETS atk RUNTIME DESTINATION bin ARCHIVE DESTINATION lib LIBRARY DESTINATION lib)
if(NOT ATK_SKIP_HEADERS)
install(FILES
atk/atk.h
atk/atkaction.h
atk/atkcomponent.h
atk/atkdocument.h
atk/atkeditabletext.h
atk/atkgobjectaccessible.h
atk/atkhyperlink.h
atk/atkhyperlinkimpl.h
atk/atkhypertext.h
atk/atknoopobject.h
atk/atknoopobjectfactory.h
atk/atkobject.h
atk/atkobjectfactory.h
atk/atkplug.h
atk/atkimage.h
atk/atkrange.h
atk/atkregistry.h
atk/atkrelation.h
atk/atkrelationtype.h
atk/atkrelationset.h
atk/atkselection.h
atk/atksocket.h
atk/atkstate.h
atk/atkstateset.h
atk/atkstreamablecontent.h
atk/atktable.h
atk/atktablecell.h
atk/atktext.h
atk/atkutil.h
atk/atkmisc.h
atk/atkvalue.h
atk/atkwindow.h
atk/atkversion.h
atk/atk-enum-types.h
atk/atkversion.h
DESTINATION include/atk)
endif()
message(STATUS "Link-time dependencies:")
message(STATUS " " ${LIBINTL_LIBRARY})
foreach(GL ${GLIB_LIBRARIES})
message(STATUS " " ${GL})
endforeach()