diff --git a/.gitignore b/.gitignore index 115d637..f34b24f 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ /example /*.exe /*.dll +/[Bb]uild/ diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..acb2535 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,62 @@ +cmake_minimum_required (VERSION 3.27) + +project (munit + LANGUAGES C + VERSION 0.2.0 + HOMEPAGE_URL "https://github.com/nemequ/munit" + DESCRIPTION "µnit is a small testing framework for C ") + +find_package (OpenMP) + +add_library (munit munit.c) + +include (GNUInstallDirs) +include (CMakePackageConfigHelpers) + +target_include_directories (munit + PUBLIC + $ + $) + +set_target_properties (munit + PROPERTIES + C_STANDARD 99 + C_EXTENSIONS OFF + C_STANDARD_REQUIRED ON + DEBUG_POSTFIX "_d" + RELWITHDEBINFO_POSTFIX "_rd" + MINSIZEREL_POSTFIX "_msr") + +target_link_libraries (munit + PUBLIC + $,OpenMP::OpenMP_C,"">) + +install ( + TARGETS munit + EXPORT munit-targets + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} + INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} + "${CMAKE_INSTALL_INCLUDEDIR}/munit" +) + +install ( + EXPORT munit-targets + FILE munit-targets.cmake + NAMESPACE MUnit:: + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/munit" +) + +configure_package_config_file( + "cmake/Config.cmake.in" + ${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config.cmake + INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}" +) + +install( + FILES "${PROJECT_BINARY_DIR}/munit-config.cmake" + DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/munit" +) + +install (FILES munit.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) diff --git a/cmake/Config.cmake.in b/cmake/Config.cmake.in new file mode 100644 index 0000000..aa8bc5c --- /dev/null +++ b/cmake/Config.cmake.in @@ -0,0 +1,4 @@ +@PACKAGE_INIT@ + +include("${CMAKE_CURRENT_LIST_DIR}/@PROJECT_NAME@-targets.cmake") +check_required_components("@PROJECT_NAME@")