mirror of
https://github.com/likle/cwalk.git
synced 2026-10-28 18:02:24 +00:00
build on windows
This commit is contained in:
1 parent
998351046e
commit
43fe8098de
2 files changed
+101
-104
No files matched your search
+100
-103
@@ -1,103 +1,100 @@
|
||||
cmake_minimum_required(VERSION 3.9.2)
|
||||
|
||||
# set project name
|
||||
project(cwalk
|
||||
VERSION 0.1.0
|
||||
DESCRIPTION "A simple path library"
|
||||
LANGUAGES C)
|
||||
|
||||
# include utilities
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
||||
include(EnableWarnings)
|
||||
include(CTest)
|
||||
include(CreateTestList)
|
||||
|
||||
# configure requirements
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
|
||||
# setup target and directory names
|
||||
set(LIBRARY_TARGET "cwalk")
|
||||
set(TEST_TARGET "cwalktest")
|
||||
set(INCLUDE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include")
|
||||
set(SOURCE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/src")
|
||||
set(TEST_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/test")
|
||||
|
||||
# generate constants
|
||||
# configure_file("${SOURCE_DIRECTORY}/constants.h.in" "${SOURCE_DIRECTORY}/constants.h")
|
||||
|
||||
# enable coverage if requested
|
||||
if(ENABLE_COVERAGE)
|
||||
message("-- Coverage enabled")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage")
|
||||
endif()
|
||||
|
||||
# enable sanitizer
|
||||
if(ENABLE_SANITIZER)
|
||||
message("-- Sanitizer enabled")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-omit-frame-pointer -fsanitize=${ENABLE_SANITIZER}")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=${ENABLE_SANITIZER}")
|
||||
endif()
|
||||
|
||||
# add the main executable
|
||||
add_library(${LIBRARY_TARGET}
|
||||
"${INCLUDE_DIRECTORY}/cwalk.h"
|
||||
"${SOURCE_DIRECTORY}/path.c")
|
||||
target_include_directories(${LIBRARY_TARGET} PUBLIC "${INCLUDE_DIRECTORY}")
|
||||
|
||||
# add tests
|
||||
enable_testing()
|
||||
create_test(DEFAULT basename simple)
|
||||
create_test(DEFAULT basename empty)
|
||||
create_test(DEFAULT basename trailing_separator)
|
||||
create_test(DEFAULT basename trailing_separators)
|
||||
create_test(DEFAULT basename no_separators)
|
||||
create_test(DEFAULT basename special_directories)
|
||||
create_test(DEFAULT basename root)
|
||||
create_test(DEFAULT dirname simple)
|
||||
create_test(DEFAULT dirname empty)
|
||||
create_test(DEFAULT dirname trailing_separator)
|
||||
create_test(DEFAULT dirname trailing_separators)
|
||||
create_test(DEFAULT dirname no_separators)
|
||||
create_test(DEFAULT dirname special_directories)
|
||||
create_test(DEFAULT dirname root)
|
||||
create_test(DEFAULT extension get_simple)
|
||||
create_test(DEFAULT extension get_without)
|
||||
create_test(DEFAULT extension get_first)
|
||||
create_test(DEFAULT extension get_last)
|
||||
create_test(DEFAULT extension get_multiple)
|
||||
create_test(DEFAULT extension check_simple)
|
||||
create_test(DEFAULT extension check_empty)
|
||||
create_test(DEFAULT extension check_without)
|
||||
create_test(DEFAULT intersection simple)
|
||||
create_test(DEFAULT intersection trailing_separator)
|
||||
create_test(DEFAULT intersection double_separator)
|
||||
create_test(DEFAULT intersection empty)
|
||||
create_test(DEFAULT normalize do_nothing)
|
||||
create_test(DEFAULT normalize navigate_back)
|
||||
create_test(DEFAULT normalize navigate_too_far)
|
||||
create_test(DEFAULT normalize terminated)
|
||||
create_test(DEFAULT normalize double_separator)
|
||||
create_test(DEFAULT normalize remove_current)
|
||||
create_test(DEFAULT normalize mixed)
|
||||
create_test(DEFAULT normalize overlap)
|
||||
create_test(DEFAULT segment first)
|
||||
create_test(DEFAULT segment last)
|
||||
create_test(DEFAULT segment next)
|
||||
create_test(DEFAULT segment previous)
|
||||
create_test(DEFAULT segment type)
|
||||
create_test_list(DEFAULT "${TEST_DIRECTORY}/tests.h")
|
||||
|
||||
add_executable(${TEST_TARGET}
|
||||
"${TEST_DIRECTORY}/main.c"
|
||||
"${TEST_DIRECTORY}/basename_test.c"
|
||||
"${TEST_DIRECTORY}/dirname_test.c"
|
||||
"${TEST_DIRECTORY}/extension_test.c"
|
||||
"${TEST_DIRECTORY}/intersection_test.c"
|
||||
"${TEST_DIRECTORY}/normalize_test.c"
|
||||
"${TEST_DIRECTORY}/segment_test.c")
|
||||
target_link_libraries(${TEST_TARGET} PUBLIC ${LIBRARY_TARGET})
|
||||
target_include_directories(${TEST_TARGET} PUBLIC "${INCLUDE_DIRECTORY}")
|
||||
|
||||
# enable warnings
|
||||
enable_warnings(${LIBRARY_TARGET})
|
||||
cmake_minimum_required(VERSION 3.9.2)
|
||||
|
||||
# set project name
|
||||
project(cwalk
|
||||
VERSION 0.1.0
|
||||
DESCRIPTION "A simple path library"
|
||||
LANGUAGES C)
|
||||
|
||||
# include utilities
|
||||
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
||||
include(EnableWarnings)
|
||||
include(CTest)
|
||||
include(CreateTestList)
|
||||
|
||||
# configure requirements
|
||||
set(CMAKE_C_STANDARD 11)
|
||||
|
||||
# setup target and directory names
|
||||
set(LIBRARY_TARGET "cwalk")
|
||||
set(TEST_TARGET "cwalktest")
|
||||
set(INCLUDE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/include")
|
||||
set(SOURCE_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/src")
|
||||
set(TEST_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/test")
|
||||
|
||||
# enable coverage if requested
|
||||
if(ENABLE_COVERAGE)
|
||||
message("-- Coverage enabled")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fprofile-arcs -ftest-coverage")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} --coverage")
|
||||
endif()
|
||||
|
||||
# enable sanitizer
|
||||
if(ENABLE_SANITIZER)
|
||||
message("-- Sanitizer enabled")
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fno-omit-frame-pointer -fsanitize=${ENABLE_SANITIZER}")
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=${ENABLE_SANITIZER}")
|
||||
endif()
|
||||
|
||||
# add the main executable
|
||||
add_library(${LIBRARY_TARGET}
|
||||
"${INCLUDE_DIRECTORY}/cwalk.h"
|
||||
"${SOURCE_DIRECTORY}/path.c")
|
||||
target_include_directories(${LIBRARY_TARGET} PUBLIC "${INCLUDE_DIRECTORY}")
|
||||
|
||||
# add tests
|
||||
enable_testing()
|
||||
create_test(DEFAULT basename simple)
|
||||
create_test(DEFAULT basename empty)
|
||||
create_test(DEFAULT basename trailing_separator)
|
||||
create_test(DEFAULT basename trailing_separators)
|
||||
create_test(DEFAULT basename no_separators)
|
||||
create_test(DEFAULT basename special_directories)
|
||||
create_test(DEFAULT basename root)
|
||||
create_test(DEFAULT dirname simple)
|
||||
create_test(DEFAULT dirname empty)
|
||||
create_test(DEFAULT dirname trailing_separator)
|
||||
create_test(DEFAULT dirname trailing_separators)
|
||||
create_test(DEFAULT dirname no_separators)
|
||||
create_test(DEFAULT dirname special_directories)
|
||||
create_test(DEFAULT dirname root)
|
||||
create_test(DEFAULT extension get_simple)
|
||||
create_test(DEFAULT extension get_without)
|
||||
create_test(DEFAULT extension get_first)
|
||||
create_test(DEFAULT extension get_last)
|
||||
create_test(DEFAULT extension get_multiple)
|
||||
create_test(DEFAULT extension check_simple)
|
||||
create_test(DEFAULT extension check_empty)
|
||||
create_test(DEFAULT extension check_without)
|
||||
create_test(DEFAULT intersection simple)
|
||||
create_test(DEFAULT intersection trailing_separator)
|
||||
create_test(DEFAULT intersection double_separator)
|
||||
create_test(DEFAULT intersection empty)
|
||||
create_test(DEFAULT normalize do_nothing)
|
||||
create_test(DEFAULT normalize navigate_back)
|
||||
create_test(DEFAULT normalize navigate_too_far)
|
||||
create_test(DEFAULT normalize terminated)
|
||||
create_test(DEFAULT normalize double_separator)
|
||||
create_test(DEFAULT normalize remove_current)
|
||||
create_test(DEFAULT normalize mixed)
|
||||
create_test(DEFAULT normalize overlap)
|
||||
create_test(DEFAULT segment first)
|
||||
create_test(DEFAULT segment last)
|
||||
create_test(DEFAULT segment next)
|
||||
create_test(DEFAULT segment previous)
|
||||
create_test(DEFAULT segment type)
|
||||
create_test_list(DEFAULT "${TEST_DIRECTORY}/tests.h")
|
||||
|
||||
add_executable(${TEST_TARGET}
|
||||
"${TEST_DIRECTORY}/main.c"
|
||||
"${TEST_DIRECTORY}/basename_test.c"
|
||||
"${TEST_DIRECTORY}/dirname_test.c"
|
||||
"${TEST_DIRECTORY}/extension_test.c"
|
||||
"${TEST_DIRECTORY}/intersection_test.c"
|
||||
"${TEST_DIRECTORY}/normalize_test.c"
|
||||
"${TEST_DIRECTORY}/segment_test.c")
|
||||
target_link_libraries(${TEST_TARGET} PUBLIC ${LIBRARY_TARGET})
|
||||
target_include_directories(${TEST_TARGET} PUBLIC "${INCLUDE_DIRECTORY}")
|
||||
|
||||
# enable warnings
|
||||
enable_warnings(${LIBRARY_TARGET})
|
||||
+1
-1
@@ -569,7 +569,7 @@ bool cwk_path_is_separator(const char *str)
|
||||
{
|
||||
#if defined(CWK_WINDOWS)
|
||||
// Windows supports both path separators.
|
||||
return *str == '\\' || *str == '/'
|
||||
return *str == '\\' || *str == '/';
|
||||
#else
|
||||
return *str == '/';
|
||||
#endif
|
||||
|
||||
Reference in new issue
Block a user