Blame synfig-core/src/synfig/CMakeLists.txt

caryoscelus b57217
##
caryoscelus b57217
## Build targets
caryoscelus b57217
##
caryoscelus b57217
caryoscelus b57217
## Main target: libsynfig
caryoscelus 5dc91c
## TODO: optional static linking?
caryoscelus 5dc91c
add_library(synfig SHARED "")
caryoscelus b57217
e83f04
message(STATUS "MLT DIR: ${MLT_INCLUDE_DIRS}")
e83f04
caryoscelus b1f581
target_include_directories(synfig
e83f04
#    SYSTEM BEFORE PUBLIC
996ba4
SYSTEM PUBLIC
996ba4
        ${LIBXML_INCLUDE_DIRS}
e83f04
PUBLIC
caryoscelus b1f581
        ${SIGCPP_INCLUDE_DIRS}
caryoscelus b1f581
        ${GLIBMM_INCLUDE_DIRS}
caryoscelus b1f581
        ${GIOMM_INCLUDE_DIRS}
caryoscelus b1f581
        ${CAIRO_INCLUDE_DIRS}
caryoscelus b1f581
        ${PANGO_INCLUDE_DIRS}
6c97aa
        ${MLT_INCLUDE_DIRS}
caryoscelus b1f581
        ${FFTW_INCLUDE_DIRS}
caryoscelus b1f581
)
caryoscelus b1f581
caryoscelus b57217
target_sources(synfig
caryoscelus 5b1e71
    PRIVATE
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/activepoint.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/bone.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/blur.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/cairo_operators.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/cairo_renddesc.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/canvas.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/context.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/curve_helper.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/curveset.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/distance.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/exception.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/guid.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/importer.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/cairoimporter.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/keyframe.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/layer.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/loadcanvas.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/main.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/module.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/node.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/palette.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/paramdesc.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/polynomial_root.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/rect.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/renddesc.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/render.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/savecanvas.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/surface.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/target.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/time.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/timepointcollect.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/transform.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/uniqueid.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/valuenode.cpp"
caryoscelus 6523b8
        "${CMAKE_CURRENT_LIST_DIR}/valuenode_registry.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/waypoint.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/matrix.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/filesystem.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/filesystemnative.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/filesystemgroup.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/filesystemtemporary.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/filecontainer.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/filecontainerzip.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/zstreambuf.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/valueoperations.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/soundprocessor.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/canvasfilenaming.cpp"
29b312
        "${CMAKE_CURRENT_LIST_DIR}/token.cpp"
cfab44
        "${CMAKE_CURRENT_LIST_DIR}/threadpool.cpp"
96d6ce
        "${CMAKE_CURRENT_LIST_DIR}/curve.cpp"
caryoscelus b57217
)
caryoscelus b57217
caryoscelus b57217
## these were added seprately in autotools build, preserving this for now
caryoscelus b57217
## TODO: either merge with main list or create new target
caryoscelus b57217
target_sources(synfig
caryoscelus 5b1e71
    PRIVATE
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/target_multi.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/target_null.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/target_null_tile.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/target_scanline.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/target_cairo.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/target_tile.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/target_cairo_tile.cpp"
caryoscelus b57217
)
caryoscelus b57217
target_sources(synfig
caryoscelus 5b1e71
    PRIVATE
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/listimporter.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/cairolistimporter.cpp"
caryoscelus b57217
)
caryoscelus b57217
target_sources(synfig
caryoscelus 5b1e71
    PRIVATE
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/blinepoint.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/widthpoint.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/dashitem.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/gradient.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/type.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/base_types.cpp"
caryoscelus b57217
        "${CMAKE_CURRENT_LIST_DIR}/value.cpp"
caryoscelus b57217
)
caryoscelus b57217
caryoscelus f4661e
##
caryoscelus f4661e
## Sub-dirs
caryoscelus f4661e
##
caryoscelus b1f581
caryoscelus b57217
## include sub-dirs
caryoscelus b57217
include(color/CMakeLists.txt)
caryoscelus b57217
include(layers/CMakeLists.txt)
caryoscelus b57217
include(rendering/CMakeLists.txt)
caryoscelus b57217
include(valuenodes/CMakeLists.txt)
caryoscelus b57217
caryoscelus f4661e
## TODO: check if we need this for release build
caryoscelus 174476
include(debug/CMakeLists.txt)
caryoscelus 174476
caryoscelus b57217
target_link_libraries(synfig
e83f04
    PUBLIC
caryoscelus f4661e
        ${SIGCPP_LIBRARIES}
caryoscelus f4661e
        ${GLIBMM_LIBARIES}
caryoscelus f4661e
        ${GIOMM_LIBRARIES}
caryoscelus f4661e
        ${CAIRO_LIBRARIES}
caryoscelus f4661e
        ${LIBXML_LIBRARIES}
caryoscelus f4661e
        ${MLT_LIBRARIES}
caryoscelus f4661e
        ${ZLIB_LIBRARIES}
caryoscelus f4661e
        ${FFTW_LIBRARIES}
caryoscelus f4661e
        ${CMAKE_THREAD_LIBS_INIT}
caryoscelus 39d3fe
caryoscelus 39d3fe
        # TODO: properly detect ltdl
caryoscelus 39d3fe
        ltdl
b4dc1f
    PRIVATE
b4dc1f
        dl # TODO: Remove dlerror from module.cpp and this library too
caryoscelus b57217
)
caryoscelus 5dc91c
caryoscelus b1f581
## Install headers
caryoscelus b1f581
## TODO: find a better way to do that, maybe?
caryoscelus f4661e
file(GLOB SYNFIG_HEADERS "${CMAKE_CURRENT_LIST_DIR}/*.h")
caryoscelus f4661e
caryoscelus b1f581
install(
caryoscelus f4661e
    FILES ${SYNFIG_HEADERS}
caryoscelus b1f581
    DESTINATION include/synfig
caryoscelus b1f581
)
caryoscelus b1f581
caryoscelus 5b1e71
install(
caryoscelus 5dc91c
    TARGETS synfig
caryoscelus b23e18
    EXPORT synfig
caryoscelus 5b1e71
    LIBRARY DESTINATION lib
caryoscelus 5b1e71
)
caryoscelus 5b1e71
caryoscelus 5b1e71
export(
caryoscelus b23e18
    EXPORT synfig
caryoscelus 5b1e71
    FILE "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}/${PROJECT_NAME}-config.cmake"
caryoscelus 5b1e71
)
caryoscelus 5b1e71
caryoscelus 5b1e71
install(
caryoscelus b23e18
    EXPORT synfig
caryoscelus 5b1e71
    FILE "${PROJECT_NAME}-config.cmake"
caryoscelus 5b1e71
    DESTINATION "lib/cmake/${PROJECT_NAME}"
caryoscelus 5dc91c
)