4 set(LIBCOLORER_TREE "${CMAKE_CURRENT_SOURCE_DIR}/src/Colorer-library/src")
6 include(src/Colorer-library/cmake/utils.cmake)
8 colorer_extract_version()
9 message(STATUS "Build Colorer: ${COLORER_VERSION}")
12 src/pcolorer2/ChooseTypeMenu.h
13 src/pcolorer2/ConsoleAnnotation.h
14 src/pcolorer2/FarEditor.h
15 src/pcolorer2/FarEditorSet.h
16 src/pcolorer2/FarHrcSettings.h
17 src/pcolorer2/pcolorer.h
18 src/pcolorer2/resource.h
19 src/pcolorer2/StringBuffer.h
21 src/pcolorer2/ChooseTypeMenu.cpp
22 src/pcolorer2/FarEditor.cpp
23 src/pcolorer2/FarEditorSet.cpp
24 src/pcolorer2/FarHrcSettings.cpp
25 src/pcolorer2/pcolorer.cpp
26 src/pcolorer2/StringBuffer.cpp
27 src/pcolorer2/tools.cpp
30 add_library(colorer MODULE ${SOURCES})
32 FIND_PACKAGE(Spdlog REQUIRED)
33 FIND_PACKAGE(XercesC REQUIRED)
35 # sometimes libstd requires linking to libfmt, sometimes not
36 # so, if libfmt there - lets link to it, if not - then dont care
39 # using fmt_LIBRARY directrly target_link_libraries fails build
40 # so have to copy it into intermediate var but only if fmt_FOUND
42 set(fmt_LIBRARY_OPTIONAL "${fmt_LIBRARY}")
43 # add libfmt package into far2l dependencies if needed
44 IF(PACKAGE_DEPENDENCIES)
45 SET(PACKAGE_DEPENDENCIES "${PACKAGE_DEPENDENCIES}, libfmt${fmt_VERSION_MAJOR}" PARENT_SCOPE)
46 ELSE(PACKAGE_DEPENDENCIES)
47 SET(PACKAGE_DEPENDENCIES "libfmt${fmt_VERSION_MAJOR}" PARENT_SCOPE)
48 ENDIF(PACKAGE_DEPENDENCIES)
50 set(fmt_LIBRARY_OPTIONAL "")
53 target_include_directories(colorer
54 PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src/Colorer-library/src
55 PUBLIC ${SPDLOG_INCLUDE_DIR}
56 PUBLIC ${XERCESC_INCLUDE_DIR}
59 target_link_libraries(colorer
61 ${fmt_LIBRARY_OPTIONAL}
68 SPDLOG_DISABLE_TID_CACHING
73 if (NOT EXISTS "${SPDLOG_INCLUDE_DIR}/spdlog/fmt/bundled")
77 SPDLOG_FMT_EXTERNAL=ON
79 message("Forcing SPDLOG_FMT_EXTERNAL cuz FMT installed and missing ${SPDLOG_INCLUDE_DIR}/spdlog/fmt/bundled")
81 message("NOT forcing SPDLOG_FMT_EXTERNAL cuz FMT NOT installed")
85 target_compile_definitions(colorer PUBLIC
92 target_include_directories(colorer PRIVATE ${LIBCOLORER_TREE}/src)
93 target_include_directories(colorer PRIVATE src/pcolorer2)
94 target_include_directories(colorer PRIVATE src)
95 target_include_directories(colorer PRIVATE ../WinPort)
96 target_include_directories(colorer PRIVATE ../far2l/far2sdk)
98 set_target_properties(colorer
100 LIBRARY_OUTPUT_DIRECTORY "${INSTALL_DIR}/Plugins/colorer/plug"
102 SUFFIX ".far-plug-wide")
104 add_custom_command(TARGET colorer POST_BUILD
105 DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/configs
106 COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/configs "${INSTALL_DIR}/Plugins/colorer"
109 add_subdirectory("${LIBCOLORER_TREE}" "${CMAKE_BINARY_DIR}/Colorer-library/src")