Reorganize code into library for reuse

This commit is contained in:
2021-05-08 15:58:59 -04:00
parent d1f144aca7
commit aa4d8efdd2
20 changed files with 140 additions and 75 deletions

View File

@@ -1,37 +1,14 @@
cmake_minimum_required (VERSION 2.8.12)
project (mazemaker)
set(CMAKE_C_FLAGS "-Wall -O2 -g")
set (VERSION_MAJOR 1)
set (VERSION_MINOR 0)
cmake_minimum_required (VERSION 3.0)
cmake_policy(VERSION 3.0)
project (mazemaker VERSION 1.0)
configure_file (
"${PROJECT_SOURCE_DIR}/config.h.in"
"${PROJECT_BINARY_DIR}/config.h"
)
SET(EXEC_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX} CACHE PATH "Installation prefix for executables and object code libraries" FORCE)
SET(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/include CACHE PATH "Installation prefix for C header files" FORCE)
SET(LIB_INSTALL_DIR ${CMAKE_INSTALL_PREFIX}/lib CACHE PATH "Installation prefix for object code libraries" FORCE)
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/mazemaker.pc.cmake ${CMAKE_CURRENT_BINARY_DIR}/mazemaker.pc)
find_package(PkgConfig REQUIRED)
pkg_search_module(POPT REQUIRED popt)
pkg_search_module(PNG REQUIRED libpng)
include_directories("${PROJECT_BINARY_DIR}")
file(GLOB_RECURSE SOURCES src/*.c src/*.h)
add_executable (mazemaker ${SOURCES})
install (TARGETS mazemaker DESTINATION bin)
target_link_libraries(mazemaker PUBLIC ${POPT_LIBRARIES} ${PNG_LIBRARIES} m)
target_include_directories(mazemaker PUBLIC ${POPT_INCLUDE_DIRS} ${PNG_INCLUDE_DIRS})
target_compile_options(mazemaker PUBLIC ${POPT_CFLAGS_OTHER} ${PNG_CFLAGS_OTHER})
target_link_options(mazemaker PUBLIC -L${POPT_LIBDIR} -L${PNG_LIBDIR})
set(
CPACK_SOURCE_PACKAGE_FILE_NAME
"mazemaker-${VERSION_MAJOR}.${VERSION_MINOR}"
CACHE INTERNAL "tarball basename"
)
set(CPACK_SOURCE_GENERATOR "TGZ")
set(CPACK_SOURCE_IGNORE_FILES "*.png;/logs/;/.git/;.gitignore;.tar.gz$;/Makefile;/CMakeCache.txt;/CMakeFiles/;cmake_install.cmake;install_manifest.txt;/_CPack;/mazemaker$;/config.h$;.cmake$;${CPACK_SOURCE_IGNORE_FILES}")
include(CPack)
add_subdirectory(lib)
add_subdirectory(utils)
INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/mazemaker.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig)