Commit 4a5357ff authored by Paul Asmuth's avatar Paul Asmuth
Browse files

also build a shared library

parent 70df8798
Loading
Loading
Loading
Loading
+14 −8
Original line number Diff line number Diff line
@@ -76,22 +76,28 @@ message(STATUS "Config Options: text_enable_bidi=${FVIZ_TEXT_ENABLE_BIDI}")
# Build: fviz Library
# -----------------------------------------------------------------------------
file(GLOB source_files "core/*.cc" "core/**/*.cc" "elements/*.cc" "elements/**/*.cc")
list(REMOVE_ITEM source_files "core/cli.cc")
add_library(fviz STATIC ${source_files})
set_target_properties(fviz PROPERTIES PUBLIC_HEADER "core/fviz.h")
set(fviz_LDFLAGS fviz ${CAIRO_LIBRARIES} ${FREETYPE_LIBRARIES} ${HARFBUZZ_LIBRARIES} ${HARFBUZZ_ICU_LIBRARIES} ${PNG_LIBRARIES} ${FONTCONFIG_LIBRARIES} ${FRIBIDI_LIBRARIES} fmt)
list(REMOVE_ITEM source_files "${CMAKE_SOURCE_DIR}/core/cli.cc")
add_library(fviz OBJECT ${source_files})
set_property(TARGET fviz PROPERTY POSITION_INDEPENDENT_CODE 1)
set(fviz_LDFLAGS ${CAIRO_LIBRARIES} ${FREETYPE_LIBRARIES} ${HARFBUZZ_LIBRARIES} ${HARFBUZZ_ICU_LIBRARIES} ${PNG_LIBRARIES} ${FONTCONFIG_LIBRARIES} ${FRIBIDI_LIBRARIES} fmt)
add_library(fviz-lib-a STATIC $<TARGET_OBJECTS:fviz>)
set_target_properties(fviz-lib-a PROPERTIES OUTPUT_NAME fviz)
add_library(fviz-lib-so SHARED $<TARGET_OBJECTS:fviz>)
set_target_properties(fviz-lib-so PROPERTIES OUTPUT_NAME fviz)
set_target_properties(fviz-lib-so PROPERTIES PUBLIC_HEADER "core/fviz.h")


# Build: CLI
# -----------------------------------------------------------------------------
add_executable(fviz-cli core/cli.cc)
add_executable(fviz-cli "core/cli.cc" $<TARGET_OBJECTS:fviz>)
target_link_libraries(fviz-cli ${fviz_LDFLAGS})
set_target_properties(fviz-cli PROPERTIES OUTPUT_NAME fviz)


# Installation
# -----------------------------------------------------------------------------
install(TARGETS fviz ARCHIVE DESTINATION lib PUBLIC_HEADER DESTINATION include/fviz)
install(TARGETS fviz-lib-a ARCHIVE DESTINATION lib PUBLIC_HEADER DESTINATION include/fviz)
install(TARGETS fviz-lib-so LIBRARY DESTINATION lib PUBLIC_HEADER DESTINATION include/fviz)
install(TARGETS fviz-cli DESTINATION bin)


@@ -108,7 +114,7 @@ foreach(unit_test_path ${unit_test_files})
  get_filename_component(unit_test_name ${unit_test_path} NAME_WE)
  get_filename_component(unit_test_srcdir ${unit_test_path} DIRECTORY)

  add_executable(${unit_test_name} ${unit_test_path})
  add_executable(${unit_test_name} ${unit_test_path} $<TARGET_OBJECTS:fviz>)
  target_link_libraries(${unit_test_name} ${fviz_LDFLAGS})

  add_test(
@@ -116,7 +122,7 @@ foreach(unit_test_path ${unit_test_files})
      COMMAND ${CMAKE_COMMAND} -E env
          FVIZ_TEST_SRCDIR=${CMAKE_SOURCE_DIR}
          ${CMAKE_CURRENT_BINARY_DIR}/${unit_test_name}
      DEPENDS fviz-cli test-prepare)
      DEPENDS fviz test-prepare)

  set_tests_properties(
      test-unit-${unit_test_name}
+1 −0
Original line number Diff line number Diff line
@@ -18,6 +18,7 @@
#include <string>
#include <stdarg.h>
#include <initializer_list>
#define FMT_HEADER_ONLY
#include <fmt/format.h>
#include "stringutil.h"
#include "fviz.h"