diff --git a/CMakeLists.txt b/CMakeLists.txt index 133c553..625a18a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,12 +1,11 @@ cmake_minimum_required(VERSION 3.30) -project(cpp-core - VERSION 0.1.0 - DESCRIPTION "Cross-platform helper library shared by cpp-linux-bindings and cpp-windows-bindings" - LANGUAGES CXX) - -# Export compile commands to root directory -set(CMAKE_EXPORT_COMPILE_COMMANDS ON) +project( + cpp-core + VERSION 0.1.0 + DESCRIPTION "Core library with header interface files." + LANGUAGES CXX +) # --------------------------------------------------------------------------- # Version information - can be overridden by parent project @@ -34,56 +33,44 @@ target_include_directories(cpp_core INTERFACE # Require C++23 target_compile_features(cpp_core INTERFACE cxx_std_23) -# Enable C++23 module support -set(CMAKE_CXX_MODULE_STD 23) -set(CMAKE_CXX_MODULE_EXTENSIONS OFF) - # Install rules -------------------------------------------------------------- include(GNUInstallDirs) -install(TARGETS cpp_core - EXPORT cpp_coreTargets) +install( + TARGETS cpp_core + EXPORT cpp_coreTargets +) -install(DIRECTORY include/ - DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +install( + DIRECTORY include/ + DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} +) # CMake package configuration ------------------------------------------------ include(CMakePackageConfigHelpers) write_basic_package_version_file( - ${CMAKE_CURRENT_BINARY_DIR}/cpp_coreConfigVersion.cmake - VERSION ${PROJECT_VERSION} - COMPATIBILITY SameMajorVersion) + ${CMAKE_CURRENT_BINARY_DIR}/cpp_coreConfigVersion.cmake + VERSION ${PROJECT_VERSION} + COMPATIBILITY SameMajorVersion +) configure_package_config_file( - ${CMAKE_CURRENT_LIST_DIR}/cmake/cpp_core_config.cmake.in - ${CMAKE_CURRENT_BINARY_DIR}/cpp_coreConfig.cmake - INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/cpp_core) + ${CMAKE_CURRENT_LIST_DIR}/cmake/cpp_core_config.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/cpp_coreConfig.cmake + INSTALL_DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/cpp_core +) -install(EXPORT cpp_coreTargets - FILE cpp_coreTargets.cmake - NAMESPACE cpp_core:: - DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/cpp_core) +install( + EXPORT cpp_coreTargets + FILE cpp_coreTargets.cmake + NAMESPACE cpp_core:: + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/cpp_core +) -install(FILES +install( + FILES ${CMAKE_CURRENT_BINARY_DIR}/cpp_coreConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/cpp_coreConfigVersion.cmake - DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/cpp_core) - -# Module test ---------------------------------------------------------------- -add_library(hello_module STATIC) -target_sources(hello_module - PUBLIC FILE_SET cxx_modules TYPE CXX_MODULES - FILES test/hello.cxx -) - -add_executable(module_test test/main.cpp) -target_link_libraries(module_test PRIVATE hello_module) - -add_custom_target(copy-compile-commands ALL - ${CMAKE_COMMAND} -E copy_if_different - ${CMAKE_BINARY_DIR}/compile_commands.json - ${CMAKE_SOURCE_DIR}/compile_commands.json - DEPENDS ${CMAKE_BINARY_DIR}/compile_commands.json - COMMENT "Copying compile_commands.json to project root" + DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/cpp_core ) diff --git a/cmake/msvc-toolchain.cmake b/cmake/msvc-toolchain.cmake index 4d5ea77..a70d912 100644 --- a/cmake/msvc-toolchain.cmake +++ b/cmake/msvc-toolchain.cmake @@ -1,7 +1,7 @@ # MSVC Toolchain file for cpp-core # Usage: cmake -DCMAKE_TOOLCHAIN_FILE=cmake/msvc-toolchain.cmake .. -set(CMAKE_SYSTEM_NAME Windows) +set(CMAKE_SYSTEM_NAME Generic) # Set the C++ compiler set(CMAKE_CXX_COMPILER "cl") @@ -26,4 +26,4 @@ set(CMAKE_CXX_FLAGS_DEBUG_INIT "/Zi /Od /MDd") set(CMAKE_CXX_FLAGS_RELEASE_INIT "/O2 /DNDEBUG /MD") # MSVC-specific definitions -add_definitions(-D_CRT_SECURE_NO_WARNINGS) +add_compile_definitions(_CRT_SECURE_NO_WARNINGS) diff --git a/test/hello.cxx b/test/hello.cxx deleted file mode 100644 index 09ce60d..0000000 --- a/test/hello.cxx +++ /dev/null @@ -1,9 +0,0 @@ -export module hello; - -export int add( - int a, - int b -) -{ - return a + b; -} diff --git a/test/main.cpp b/test/main.cpp deleted file mode 100644 index 177877e..0000000 --- a/test/main.cpp +++ /dev/null @@ -1,8 +0,0 @@ -import hello; -#include - -int main() -{ - std::cout << "2 + 3 = " << add(2, 3) << std::endl; - return 0; -}