11cmake_minimum_required (VERSION 3.12)
2- project (c89stringutils VERSION 0.0.1 LANGUAGES C)
2+ project (c89stringutils VERSION 0.0.2 LANGUAGES C)
33
4- set (CMAKE_C_STANDARD 90)
54set (CMAKE_C_VISIBILITY_PRESET hidden)
65set (CMAKE_VISIBILITY_INLINES_HIDDEN YES )
7-
8- # control where the static and shared libraries are built so that on windows
9- # we don't need to tinker with the path to run the executable
10- set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR} " )
11- set (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR} " )
12- set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR} " )
6+ set (CMAKE_C_STANDARD 90)
137
148add_library ("${PROJECT_NAME} _compiler_flags" INTERFACE )
159target_compile_features ("${PROJECT_NAME} _compiler_flags" INTERFACE "c_std_${CMAKE_C_STANDARD} " )
1610
11+ # add compiler warning flags just when building this project via
12+ # the BUILD_INTERFACE genex
1713set (gcc_like "$<COMPILE_LANG_AND_ID:C,CXX,ARMClang,AppleClang,Clang,GNU,LCC>" )
1814set (msvc "$<COMPILE_LANG_AND_ID:C,CXX,MSVC>" )
19- # -g -fsanitize=address -fno-omit-frame-pointer
2015target_compile_options (
2116 "${PROJECT_NAME} _compiler_flags"
2217 INTERFACE
23- "$<${gcc_like} :$<BUILD_INTERFACE:-Wall;-Wextra;- Wshadow;-Wformat=2;-Wunused ;-pedantic>>"
18+ "$<${gcc_like} :$<BUILD_INTERFACE:-Wshadow;-Wformat=2;-Wall ;-pedantic>>"
2419 "$<${msvc} :$<BUILD_INTERFACE:-W3;-WX;-Zi;-permissive->>"
2520)
26- if (CMAKE_C_COMPILER_ID STREQUAL "Clang" OR CMAKE_C_COMPILER_ID STREQUAL "AppleClang" )
27- set (CMAKE_C_FLAGS_DEBUG " ${CMAKE_C_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address" )
28- set (CMAKE_LINKER_FLAGS_DEBUG "${CMAKE_LINKER_FLAGS_DEBUG} -fno-omit-frame-pointer -fsanitize=address " )
29- endif (CMAKE_C_COMPILER_ID STREQUAL "Clang" OR CMAKE_C_COMPILER_ID STREQUAL "AppleClang " )
21+
22+ # Set the build directories
23+ set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR} /bin " )
24+ set ( CMAKE_LIBRARY_OUTPUT_DIRECTORY " ${PROJECT_BINARY_DIR} /lib " )
3025
3126# configure a header file to pass the version number only
3227configure_file (
@@ -38,14 +33,19 @@ add_subdirectory("${PROJECT_NAME}")
3833
3934include (CTest)
4035if (BUILD_TESTING)
41- add_subdirectory ("c89stringutils_tests " )
36+ add_subdirectory ("${PROJECT_NAME} _tests " )
4237endif (BUILD_TESTING)
4338
39+ ###########
40+ # Install #
41+ ###########
42+
43+ include (GNUInstallDirs)
44+
4445install (
4546 FILES "${PROJECT_BINARY_DIR} /${PROJECT_NAME} Config.h"
46- DESTINATION "include "
47+ TYPE "INCLUDE "
4748)
48-
4949include (InstallRequiredSystemLibraries)
5050set (CPACK_BUNDLE_NAME "${PROJECT_NAME} " )
5151set (CPACK_PACKAGE_VENDOR "Samuel Marks" )
@@ -56,7 +56,7 @@ if (APPLE)
5656 set (CPACK_BUNDLE_ICON "${CMAKE_CURRENT_SOURCE_DIR} /cmake/Info.plist" )
5757 set (CPACK_PACKAGE_ICON "${CMAKE_CURRENT_SOURCE_DIR} /cmake/CustomVolumeIcon.icns" )
5858endif (APPLE )
59- set (CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR} /cmake/LICENSE .txt" )
59+ set (CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR} /cmake/license .txt" )
6060set (CPACK_PACKAGE_VERSION_MAJOR "${${PROJECT_NAME} _VERSION_MAJOR}" )
6161set (CPACK_PACKAGE_VERSION_MINOR "${${PROJECT_NAME} _VERSION_MINOR}" )
6262set (CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR} /cmake/README.txt" )
@@ -70,7 +70,7 @@ include(CMakePackageConfigHelpers)
7070configure_package_config_file(
7171 "${CMAKE_CURRENT_SOURCE_DIR} /cmake/Config.cmake.in"
7272 "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} Config.cmake"
73- INSTALL_DESTINATION "lib/cmake/example "
73+ INSTALL_DESTINATION "${CMAKE_INSTALL_DATADIR} / ${PROJECT_NAME} "
7474 NO_SET_AND_CHECK_MACRO
7575 NO_CHECK_REQUIRED_COMPONENTS_MACRO
7676)
@@ -81,7 +81,5 @@ write_basic_package_version_file(
8181 VERSION "${${PROJECT_NAME} _VERSION_MAJOR}.${${PROJECT_NAME} _VERSION_MINOR}"
8282 COMPATIBILITY AnyNewerVersion
8383)
84- install (FILES
85- "${CMAKE_BINARY_DIR} /${PROJECT_NAME} Config.cmake"
86- "${CMAKE_BINARY_DIR} /${PROJECT_NAME} ConfigVersion.cmake"
84+ install (FILES "${CMAKE_CURRENT_BINARY_DIR} /${PROJECT_NAME} Config.cmake"
8785 DESTINATION "${CMAKE_INSTALL_DATADIR} /${PROJECT_NAME} " )
0 commit comments