Language menus alphabetically sorted (from far2m)
[far2l.git] / colorer / CMakeLists.txt
blobb5b6c253eef96767332cae0a3ec275a745b03219
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
31 if (USESPDLOG)
32     FIND_PACKAGE(Spdlog REQUIRED)
33     set (SPDLOG_DEFINES
34         USESPDLOG
35         SPDLOG_DISABLE_TID_CACHING
36         SPDLOG_NO_THREAD_ID
37         SPDLOG_NO_TLS
38     )
40     if (NOT EXISTS "${SPDLOG_INCLUDE_DIR}/spdlog/fmt/bundled")
41         if (fmt_FOUND)
42             set (SPDLOG_DEFINES
43                 ${SPDLOG_DEFINES}
44                 SPDLOG_FMT_EXTERNAL=ON
45             )
46             message("SPDLOG: using with SPDLOG_FMT_EXTERNAL cuz FMT installed but ${SPDLOG_INCLUDE_DIR}/spdlog/fmt/bundled is missing")
47         else()
48             message("SPDLOG: using without forced SPDLOG_FMT_EXTERNAL cuz FMT NOT installed")
49         endif()
50     else()
51         message("SPDLOG: using without forced SPDLOG_FMT_EXTERNAL cuz ${SPDLOG_INCLUDE_DIR}/spdlog/fmt/bundled exists")
52     endif()
53 endif()
56 add_library(colorer MODULE ${SOURCES})
58 FIND_PACKAGE(XercesC REQUIRED)
60 # sometimes libstd requires linking to libfmt, sometimes not
61 # so, if libfmt there - lets link to it, if not - then dont care
62 FIND_PACKAGE(fmt)
64 # using fmt_LIBRARY directrly target_link_libraries fails build
65 # so have to copy it into intermediate var but only if fmt_FOUND
66 if (fmt_FOUND)
67     set(fmt_LIBRARY_OPTIONAL "${fmt_LIBRARY}")
68     # add libfmt package into far2l dependencies if needed
69     IF(PACKAGE_DEPENDENCIES)
70         SET(PACKAGE_DEPENDENCIES "${PACKAGE_DEPENDENCIES}, libfmt${fmt_VERSION_MAJOR}" PARENT_SCOPE)
71     ELSE(PACKAGE_DEPENDENCIES)
72         SET(PACKAGE_DEPENDENCIES "libfmt${fmt_VERSION_MAJOR}" PARENT_SCOPE)
73     ENDIF(PACKAGE_DEPENDENCIES)
74 else()
75     set(fmt_LIBRARY_OPTIONAL "")
76 endif()
78 target_include_directories(colorer
79     PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/src/Colorer-library/src
80     PUBLIC ${XERCESC_INCLUDE_DIR}
81     )
83 if(USESPDLOG)
84     target_include_directories(colorer PUBLIC ${SPDLOG_INCLUDE_DIR})
85 endif()
87 target_link_libraries(colorer
88     ${XERCESC_LIBRARIES}
89     ${fmt_LIBRARY_OPTIONAL}
90     utils
91     colorer_lib
92     far2l
93     )
95 target_compile_definitions(colorer PUBLIC
96     _UNICODE
97     UNICODE
98     __unix__
99     ${SPDLOG_DEFINES}
103 target_include_directories(colorer PRIVATE ${LIBCOLORER_TREE}/src)
104 target_include_directories(colorer PRIVATE src/pcolorer2)
105 target_include_directories(colorer PRIVATE src)
106 target_include_directories(colorer PRIVATE ../WinPort)
107 target_include_directories(colorer PRIVATE ../far2l/far2sdk)
109 set_target_properties(colorer
110     PROPERTIES
111         LIBRARY_OUTPUT_DIRECTORY "${INSTALL_DIR}/Plugins/colorer/plug"
112         PREFIX ""
113         SUFFIX ".far-plug-wide")
115 add_custom_command(TARGET colorer POST_BUILD
116     DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/configs
117     COMMAND ${CMAKE_COMMAND} -E copy_directory ${CMAKE_CURRENT_SOURCE_DIR}/configs "${INSTALL_DIR}/Plugins/colorer"
120 add_subdirectory("${LIBCOLORER_TREE}" "${CMAKE_BINARY_DIR}/Colorer-library/src")