diff --git a/307lib b/307lib index 1428369..bffef31 160000 --- a/307lib +++ b/307lib @@ -1 +1 @@ -Subproject commit 1428369952521dfc0a993d4d3f89c37ecb0c81bf +Subproject commit bffef312d3fb0d2b14c2a416e4ff852de9d0a08e diff --git a/CMakeLists.txt b/CMakeLists.txt index 949316f..fe66c01 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,13 +1,13 @@ -# convutils -cmake_minimum_required(VERSION 3.15) +# convutils/ +cmake_minimum_required(VERSION 3.20) list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/307lib/307modules") -set(ENV{CONV_VERSION} "0.0.0") +set(ENV{CONV2_VERSION} "0.0.0") include(VersionTag) -GET_VERSION_TAG("${CMAKE_CURRENT_SOURCE_DIR}" "CONV") +GET_VERSION_TAG("${CMAKE_CURRENT_SOURCE_DIR}" "CONV2") -project(convutils VERSION ${CONV_VERSION} LANGUAGES CXX) +project(convutils VERSION "${CONV2_VERSION}" LANGUAGES CXX) add_subdirectory("307lib") diff --git a/conv2/CMakeLists.txt b/conv2/CMakeLists.txt index 25f3475..118ade5 100644 --- a/conv2/CMakeLists.txt +++ b/conv2/CMakeLists.txt @@ -1,14 +1,22 @@ # conv-utils/conv2 -cmake_minimum_required(VERSION 3.15) +cmake_minimum_required(VERSION 3.20) if (MSVC) set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) endif() +if(NOT "${CONV2_VERSION_EXTRA0}" STREQUAL "") + set(CONV2_VERSION_FULL "${CONV2_VERSION}-${CONV2_VERSION_EXTRA0}" CACHE INTERNAL "") + message(STATUS "[STATUS]: Version number contains more than 3 segments, the 4th segment will be included in (version.h)") +else() + set(CONV2_VERSION_FULL "${CONV2_VERSION}" CACHE INTERNAL "") + message(STATUS "[STATUS]: Using version number \"${CONV2_VERSION_FULL}\"") +endif() + MAKE_VERSION_HEADER( "${CMAKE_CURRENT_SOURCE_DIR}/version.h" "CONV2" - "${CONV_VERSION}" + "${CONV2_VERSION_FULL}" ) file(GLOB HEADERS @@ -22,12 +30,10 @@ add_executable(conv2 "main.cpp") set_property(TARGET conv2 PROPERTY CXX_STANDARD 20) set_property(TARGET conv2 PROPERTY CXX_STANDARD_REQUIRED ON) if (MSVC) - target_compile_options(conv2 PUBLIC "/Zc:__cplusplus") + target_compile_options(conv2 PUBLIC "/Zc:__cplusplus" "/Zc:preprocessor") endif() -include(PrependEach) -PREPEND_EACH(HEADERS_ABS "${HEADERS}" "${CMAKE_CURRENT_SOURCE_DIR}/") -target_sources(conv2 PUBLIC "$" "$") +target_sources(conv2 PUBLIC "${HEADERS}") target_link_libraries(conv2 PUBLIC shared strlib TermAPI optlib convlib) diff --git a/conv2/main.cpp b/conv2/main.cpp index 8b7cc71..3e1453e 100644 --- a/conv2/main.cpp +++ b/conv2/main.cpp @@ -17,7 +17,7 @@ struct PrintHelp { friend std::ostream& operator<<(std::ostream& os, const PrintHelp& h) { if (h._param.empty()) {// unscoped help - os << "conv2 " << CONV2_VERSION << '\n' + os << "conv2 " << CONV2_VERSION_EXTENDED << '\n' << " A commandline conversion utility.\n" << '\n' << "USAGE:\n" diff --git a/convlib/CMakeLists.txt b/convlib/CMakeLists.txt index 1b0d433..f73de43 100644 --- a/convlib/CMakeLists.txt +++ b/convlib/CMakeLists.txt @@ -1,18 +1,15 @@ # convutils/convlib -cmake_minimum_required(VERSION 3.15) +cmake_minimum_required(VERSION 3.20) if (MSVC) set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) endif() -# Create project -project(convlib VERSION ${CONV_VERSION} LANGUAGES CXX) - # Get library headers & source files file(GLOB HEADERS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" CONFIGURE_DEPENDS - "include/*.h" + "include/*.h*" ) file(GLOB SRCS RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" @@ -21,13 +18,14 @@ file(GLOB SRCS ) # Create static library -add_library(convlib STATIC ${SRCS}) +add_library(convlib STATIC "${SRCS}") # Set library properties set_property(TARGET convlib PROPERTY CXX_STANDARD 20) set_property(TARGET convlib PROPERTY CXX_STANDARD_REQUIRED ON) +set_property(TARGET convlib PROPERTY POSITION_INDEPENDENT_CODE ON) if (MSVC) - target_compile_options(convlib PUBLIC "/Zc:__cplusplus") + target_compile_options(convlib PUBLIC "/Zc:__cplusplus" "/Zc:preprocessor") endif() # Include library headers