cmake_minimum_required(VERSION 3.0) # Use Release as default type if (NOT CMAKE_BUILD_TYPE) set(CMAKE_BUILD_TYPE Release) endif() # =====COMPILER===== set(CMAKE_C_COMPILER "clang-11") set(CMAKE_C_STANDARD 11) project(stj VERSION 0.1) # =====COMPILE FLAGS===== add_definitions(-DVERSION="${CMAKE_PROJECT_VERSION}" -D_XOPEN_SOURCE=600) # Debug flags # -g flag gets auto-added by CMake for the debug build set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wall -O0 -march=native") set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address") set(CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address -pedantic") # Release flags # -O3 gets added automatically by CMake set(CMAKE_C_FLAGS_RELEASE "${CMAKE_C_FLAGS_RELEASE} -Werror -march=native -pedantic-errors") # =====EXECUTABLE===== file(GLOB st_SRC "st/*.c" "st/*.h") file(GLOB main_SRC "*.c" "*.h") add_executable(stj x.c "${st_SRC}" "${main_SRC}") # =====PACKAGES & LIBRARIES===== find_package(Freetype 2 REQUIRED) target_include_directories(stj PRIVATE "${FREETYPE_INCLUDE_DIRS}") target_link_libraries(stj PRIVATE "${FREETYPE_LIBRARIES}") find_package(Fontconfig REQUIRED) target_include_directories(stj PRIVATE "${Fontconfig_INCLUDE_DIRS}") target_link_libraries(stj PRIVATE "${Fontconfig_LIBRARIES}") find_package(X11 REQUIRED) target_include_directories(stj PRIVATE "${X11_INCLUDE_DIR}") target_link_libraries(stj PRIVATE "${X11_LIBRARIES}") target_link_libraries(stj PRIVATE m) target_link_libraries(stj PRIVATE rt) target_link_libraries(stj PRIVATE util) target_link_libraries(stj PRIVATE Xft) target_link_libraries(stj PRIVATE Xrender)