Make mouse select+copy hint shorter and yellow
[far2l.git] / colorer / CMakeLists.txt
blob7f02ade0be655e13dfc368faac8f5c0abda30e01
1 project(colorer)
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}")
11 set(SOURCES
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
20     src/pcolorer2/tools.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
37 FIND_PACKAGE(fmt)
39 # using fmt_LIBRARY directrly target_link_libraries fails build
40 # so have to copy it into intermediate var but only if fmt_FOUND
41 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)
49 else()
50     set(fmt_LIBRARY_OPTIONAL "")
51 endif()
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}
57     )
59 target_link_libraries(colorer
60     ${XERCESC_LIBRARIES}
61     ${fmt_LIBRARY_OPTIONAL}
62     utils
63     colorer_lib
64     far2l
65     )
67 set (SPDLOG_DEFINES
68     SPDLOG_DISABLE_TID_CACHING
69     SPDLOG_NO_THREAD_ID
70     SPDLOG_NO_TLS
73 if (NOT EXISTS "${SPDLOG_INCLUDE_DIR}/spdlog/fmt/bundled")
74   if (fmt_FOUND)
75     set (SPDLOG_DEFINES
76         ${SPDLOG_DEFINES}
77         SPDLOG_FMT_EXTERNAL=ON
78     )
79     message("Forcing SPDLOG_FMT_EXTERNAL cuz FMT installed and missing ${SPDLOG_INCLUDE_DIR}/spdlog/fmt/bundled")
80   else()
81     message("NOT forcing SPDLOG_FMT_EXTERNAL cuz FMT NOT installed")
82   endif()
83 endif()
85 target_compile_definitions(colorer PUBLIC
86     _UNICODE
87     UNICODE
88     __unix__
89     ${SPDLOG_DEFINES}
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
99     PROPERTIES
100         LIBRARY_OUTPUT_DIRECTORY "${INSTALL_DIR}/Plugins/colorer/plug"
101         PREFIX ""
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")