mirror of
https://github.com/jkriege2/JKQtPlotter.git
synced 2024-12-26 18:41:40 +08:00
b0df7a1fd7
NEW/BREAKING: refactor CMake-Code, so static/dynamic switch is done via <code>BUILD_SHARED_LIBS</code>, which retires <code>JKQtPlotter_BUILD_STATIC_LIBS</code>, <code>JKQtPlotter_BUILD_SHARED_LIBS</code> and removes the capability to build static and shared libraries in one location (fixes issue #104) NEW: prepareed library for CMake's <a href="https://cmake.org/cmake/help/latest/module/FetchContent.html">FetchContent</a>-API NEW: the different sub-libraries JKQTPlotter, JKQTFastPlotter (DEPRECATED), JKQTMath, JKQTMathText can be activated/deactivated with CMake options JKQtPlotter_BUILD_LIB_JKQTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTFASTPLOTTER, JKQtPlotter_BUILD_LIB_JKQTMATHTEXT, JKQtPlotter_BUILD_LIB_JKQTMATH
51 lines
1.8 KiB
CMake
51 lines
1.8 KiB
CMake
cmake_minimum_required(VERSION 3.15)
|
|
|
|
set(libBasename JKQTPExampleTools)
|
|
set(lib_name ${libBasename}Lib)
|
|
message( STATUS "-- Building ${lib_name}" )
|
|
|
|
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
|
|
|
|
|
|
|
|
|
|
include(CMakePackageConfigHelpers)
|
|
|
|
function(jkqtpexampletools_setDefaultLibOptions TARGETNAME)
|
|
set_property(TARGET ${TARGETNAME} PROPERTY VERSION "${PROJECT_VERSION}")
|
|
target_link_libraries(${TARGETNAME} PUBLIC Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Gui Qt${QT_VERSION_MAJOR}::Widgets)
|
|
set_property(TARGET ${TARGETNAME} PROPERTY CXX_STANDARD ${JKQtPlotter_QT_CXX_STANDARD})
|
|
set_property(TARGET ${TARGETNAME} PROPERTY CXX_STANDARD_REQUIRED ${JKQtPlotter_QT_CXX_STANDARD_REQUIRED})
|
|
target_compile_features(${TARGETNAME} PUBLIC ${JKQtPlotter_QT_CXX_COMPILE_FEATURE})
|
|
|
|
if(MINGW)
|
|
# COMPILER-SETTINGS FOR MINGW
|
|
target_compile_options(${TARGETNAME} PUBLIC -fexceptions)
|
|
elseif(MSVC)
|
|
# COMPILER-SETTINGS FOR MS VISUAL C++
|
|
target_compile_options(${TARGETNAME} PUBLIC /EHsc)
|
|
target_compile_definitions(${TARGETNAME} PUBLIC NOMINMAX)
|
|
endif()
|
|
target_include_directories(${TARGETNAME} PUBLIC
|
|
${CMAKE_CURRENT_LIST_DIR}/../
|
|
${CMAKE_CURRENT_LIST_DIR}
|
|
)
|
|
endfunction()
|
|
|
|
|
|
add_library(${lib_name} STATIC ${SOURCES} ${RESOURCES} ${HEADERS})
|
|
jkqtpexampletools_setDefaultLibOptions(${lib_name})
|
|
target_link_libraries(${lib_name} PUBLIC ${jkqtplotter_namespace}JKQTPlotter${jkqtplotter_LIBNAME_VERSION_PART})
|
|
write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/${lib_name}Version.cmake
|
|
VERSION ${PROJECT_VERSION}
|
|
COMPATIBILITY AnyNewerVersion )
|
|
|
|
target_sources(${lib_name}
|
|
PUBLIC
|
|
jkqtpexampleapplication.h
|
|
jkqtpappsettingcontroller.h
|
|
PRIVATE
|
|
jkqtpexampleapplication.cpp
|
|
jkqtpappsettingcontroller.cpp
|
|
)
|