Обновить

Комментарии 8

Уже 6 лет не писал на плясы, но помню как сложно было настроить CMake каждый раз. Радует такая забота о пользователях))

ИМХО, если уж система сборки, то никаких других систем сборок и их артефактов (makefile) быть не должно. А то из всех этих обёрток вокруг обёрток неизбежно получается какой-то монстр: скрипт, генерирующий скрипт для скрипта, который в свою очередь тоже что-то генерирует.

я себе тоже сделал минимальный комплекс с трек моушн( в теории уже могу бежать на мид или грабить караваны на проходе ), и вижу какого этого, хочу пожелать вам успехов. )

у меня Cmake с плюшками, мне почему-то понравилось при билде выводить версии библиотек

Скрытый текст
message(STATUS "Start checking versions")
#

# Проверка версии assimp
find_package(assimp REQUIRED)

if (assimp_FOUND)
    message(STATUS "ASSIMP version: ${assimp_VERSION}")
    # Or, if ASSIMP_VERSION is not directly available, you might find other version-related variables
    # message(STATUS "Assimp Library: ${assimp_LIBRARIES}")
    # message(STATUS "Assimp Include Dirs: ${assimp_INCLUDE_DIRS}")
else()
    message(FATAL_ERROR "ASSIMP not found!")
endif()

# Проверка версии GLM
find_package(glm REQUIRED)
if("${glm_VERSION}" VERSION_LESS "1.0.2")
  message(STATUS "GLM version: ${glm_VERSION}")
  add_definitions(-DGLM_ENABLE_EXPERIMENTAL)
else()
  message(WARNING "GLM version: ${GLM_VERSION}")
endif()

# Проверка версии freetype2
find_package(Freetype REQUIRED)
if("${FREETYPE_VERSION_STRING}" VERSION_LESS "1000008.0.2")
  message(STATUS "FREETYPE version: ${FREETYPE_VERSION_STRING}")
else()
  #message(WARNING "FREETYPE version: ${FREETYPE_VERSION_STRING}")
  message(FATAL_ERROR "FREETYPE not found!")
endif()

# Проверка версии glew
find_package(GLEW REQUIRED)
if("${GLEW_VERSION}" VERSION_LESS "1000008.0.2")
  message(STATUS "GLEW version: ${GLEW_VERSION}")
else()
  #message(WARNING "GLEW version: ${GLEW_VERSION}")
  message(FATAL_ERROR "GLEW not found!")
endif()

# Проверка версии glfw3
find_package(glfw3 REQUIRED)
if("${glfw3_VERSION}" VERSION_LESS "1000008.0.2")
  message(STATUS "GLFW3 version: ${glfw3_VERSION}")
else()
  #message(WARNING "GLFW3 version: ${glfw3_VERSION}")
  message(FATAL_ERROR "GLFW3 not found!")
endif()

#
message(STATUS "End checking versions")

тут конечно немного грязные трюки вытащенные из lsp, зато при билде наглядно, мелоч а приятно )

вообще показалось, что симейк удобный, вот бы они еще скрыли все это и просто как-то всё минимальными командами настраивалось

А json много редакторов поддерживает, там и форматирование и проверка синтаксиса.

Самое-то странное, что этот "ol" по сути мультирут корявый json (нет запятых после полей). И зачем такое делать?

Действительно уже был бы yaml.

А так, для сборки я лично сильно уважаю FastBuild. Одна из лучших, но малоизвестных.

И поддерживает комментарии

Не почему «не json“?, почему не ini file?

Или точнее что мешало писать конфигурацию в нормальном Makefile формате? Вынесите все параметры в settingsMake.mk и потом импортируйте в ваш основной Makefile.

И стандартно и куча чего из коробки поддерживается что вы сами реализовывать запаритесь. Например значения по умолчанию:

В основном Makefile: var1 ?= default,

В подключаемом: var1 := projectValue,

Как это на вашем самописном формате сделать?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации