
Комментарии 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 много редакторов поддерживает, там и форматирование и проверка синтаксиса.
Окей согласен, JSON отвратно выглядит, но почему тогда не YAML? Тоже простой и приятно выглядит
Не почему «не json“?, почему не ini file?
Или точнее что мешало писать конфигурацию в нормальном Makefile формате? Вынесите все параметры в settingsMake.mk и потом импортируйте в ваш основной Makefile.
И стандартно и куча чего из коробки поддерживается что вы сами реализовывать запаритесь. Например значения по умолчанию:
В основном Makefile: var1 ?= default,
В подключаемом: var1 := projectValue,
Как это на вашем самописном формате сделать?
Oriol Engine: как мы написали собственную систему сборки C++ проектов