diff --git a/CMakeLists.txt b/CMakeLists.txt index 5b57c6b..68e7ed9 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -11,13 +11,40 @@ set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}" "${PIP_CMAKE_MODULE_PATH}" " set(LIBPROJECT 1) include(GenerateExportHeader) include(SDKMacros) +include(QADMacros) include(DeployMacros) + if(NOT DEFINED BUILD_NUMBER) set(BUILD_NUMBER 9999) endif() if("x${BUILD_NUMBER}" STREQUAL "x") set(BUILD_NUMBER 0) endif() + +if(STATIC_LIB) + set(QAD_LIB_TYPE STATIC) + add_definitions(-DQAD_STATIC_DEFINE) +else() + set(QAD_LIB_TYPE SHARED) +endif() + +set(_QAD_MAJOR 1) +set(_QAD_MINOR 7) +set(_QAD_REVISION 0) +set(_QAD_SUFFIX ) +set(_QAD_COMPANY SHS) +set(_QAD_DOMAIN org.SHS) +set(QAD_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/qad/qad_version.h") +set_version(QAD + MAJOR "${_QAD_MAJOR}" + MINOR "${_QAD_MINOR}" + REVISION "${_QAD_REVISION}" + BUILD "${BUILD_NUMBER}" + SUFFIX "${_QAD_SUFFIX}" + OUTPUT "${QAD_VERSION_FILE}") +set_deploy_property(QAD ${QAD_LIB_TYPE} + FULLNAME "${_QAD_DOMAIN}.*" + COMPANY "${_QAD_COMPANY}") include_directories(${CMAKE_CURRENT_BINARY_DIR}/pip) include_directories(${CMAKE_CURRENT_SOURCE_DIR}/qad) include_directories(${CMAKE_CURRENT_BINARY_DIR}/piqt) diff --git a/qad/CMakeLists.txt b/qad/CMakeLists.txt index e23b647..df0d80e 100644 --- a/qad/CMakeLists.txt +++ b/qad/CMakeLists.txt @@ -1,23 +1,9 @@ cmake_minimum_required(VERSION 3.0) cmake_policy(SET CMP0017 NEW) # need include() with .cmake project(qad) -set(_QAD_MAJOR 1) -set(_QAD_MINOR 7) -set(_QAD_REVISION 0) -set(_QAD_SUFFIX ) -set(_QAD_COMPANY SHS) -set(_QAD_DOMAIN org.SHS) -include(QADMacros) include_directories(${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR}) -if(STATIC_LIB) - set(QAD_LIB_TYPE STATIC) - add_definitions(-DQAD_STATIC_DEFINE) -else() - set(QAD_LIB_TYPE SHARED) -endif() - if (NOT DEFINED ANDROID_PLATFORM) find_package(OpenGL REQUIRED) endif() @@ -30,17 +16,6 @@ endif() if(EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/qad_version.h") file(REMOVE "${CMAKE_CURRENT_SOURCE_DIR}/qad_version.h") endif() -set(QAD_VERSION_FILE "${CMAKE_CURRENT_BINARY_DIR}/qad_version.h") -set_version(QAD - MAJOR "${_QAD_MAJOR}" - MINOR "${_QAD_MINOR}" - REVISION "${_QAD_REVISION}" - BUILD "${BUILD_NUMBER}" - SUFFIX "${_QAD_SUFFIX}" - OUTPUT "${QAD_VERSION_FILE}") -set_deploy_property(QAD ${QAD_LIB_TYPE} - FULLNAME "${_QAD_DOMAIN}.*" - COMPANY "${_QAD_COMPANY}") message(STATUS "Building QAD version ${QAD_VERSION} (${QAD_LIB_TYPE})") diff --git a/qad/cmake/QADMacros.cmake b/qad/cmake/QADMacros.cmake index 63eb900..4e425b5 100644 --- a/qad/cmake/QADMacros.cmake +++ b/qad/cmake/QADMacros.cmake @@ -4,10 +4,21 @@ macro(_qt_install _TARGET IS_APP _DIR _HDR_VAR _QM_FILES) endmacro() -macro(qad_plugin NAME _MODULES _LIBS) +macro(_qt_export_header NAME) + qt_get_target(${NAME} _some_target) + qt_get_target(${NAME} _targets) + foreach(_t ${_targets}) + set_target_properties(${_t} PROPERTIES DEFINE_SYMBOL ${NAME}_EXPORTS) + endforeach() + set_target_properties(${_some_target} PROPERTIES DEFINE_SYMBOL ${NAME}_EXPORTS) + generate_export_header(${_some_target} BASE_NAME "${NAME}") +endmacro() + + +macro(_qt_plugin NAME _MODULES _LIBS) if (NOT STATIC_LIB) if(DESIGNER_PLUGINS) - set(PROJ_NAME qad_${NAME}_plugin) + set(PROJ_NAME ${NAME}_plugin) include_directories("..") add_definitions(-DQT_PLUGIN) add_definitions(-DQT_NO_DEBUG) @@ -17,7 +28,7 @@ macro(qad_plugin NAME _MODULES _LIBS) qt_sources(SRC) qt_wrap(${SRC} CPPS out_CPP QMS out_QM) qt_add_library(${PROJ_NAME} SHARED out_CPP) - qt_target_link_libraries(${PROJ_NAME} ${_LIBS} qad_${NAME} ${_${NAME}_PLUGIN_LIBS}) + qt_target_link_libraries(${PROJ_NAME} ${_LIBS} ${_${NAME}_PLUGIN_LIBS}) if (WIN32) qt_install(TARGETS ${PROJ_NAME} RUNTIME DESTINATION QtPlugins/designer) else() @@ -55,13 +66,7 @@ macro(_qt_project NAME IS_APP DOMAIN _MODULES _LIBS) if(NOT STATIC_LIB) qt_target_compile_definitions(${PROJ_NAME} PRIVATE ${DOMAIN}_SHARED_DEFINE) endif() - qt_get_target(${PROJ_NAME} _some_target) - qt_get_target(${PROJ_NAME} _targets) - foreach(_t ${_targets}) - set_target_properties(${_t} PROPERTIES DEFINE_SYMBOL ${PROJ_NAME}_EXPORTS) - endforeach() - set_target_properties(${_some_target} PROPERTIES DEFINE_SYMBOL ${PROJ_NAME}_EXPORTS) - generate_export_header(${_some_target} BASE_NAME "${PROJ_NAME}") + _qt_export_header(${PROJ_NAME}) list(APPEND out_HDR "${CMAKE_CURRENT_BINARY_DIR}/${PROJ_NAME}_export.h") endif() qt_target_link_libraries(${PROJ_NAME} ${_LIBS}) @@ -85,3 +90,8 @@ macro(qad_application NAME _MODULES _LIBS) _qt_project(${NAME} TRUE "QAD" "${_MODULES}" "${_LIBS}") _qt_install(${NAME} TRUE "qad" "" "out_QM") endmacro() + + +macro(qad_plugin NAME _MODULES _LIBS) + _qt_plugin(qad_${NAME} "${_MODULES}" "qad_${NAME};${_LIBS}") +endmacro() diff --git a/qad/libs/doc/CMakeLists.txt b/qad/libs/doc/CMakeLists.txt index 9b9aab6..0457fe1 100644 --- a/qad/libs/doc/CMakeLists.txt +++ b/qad/libs/doc/CMakeLists.txt @@ -17,9 +17,11 @@ else() endif() find_library(MARKDOWN_LIBRARY markdown) if (MARKDOWN_LIBRARY) - if(_mkd_header_found) - qad_library(doc "Core" "${MARKDOWN_LIBRARY}") - else() + qad_library(doc "Core" "${MARKDOWN_LIBRARY}") + if(NOT _mkd_header_found) message(STATUS "Found markdown library, but *.h missing!") endif() +else() + add_definitions("-DNO_MARKDOWN") + qad_library(doc "Core" "") endif() diff --git a/qad/libs/doc/markdown.cpp b/qad/libs/doc/markdown.cpp index dce891f..f218633 100644 --- a/qad/libs/doc/markdown.cpp +++ b/qad/libs/doc/markdown.cpp @@ -1,5 +1,6 @@ #include "markdown.h" #include +#ifndef NO_MARKDOWN extern "C" { #include MARKDOWN_HEADER } @@ -77,3 +78,10 @@ QString md2html(const QByteArray & src) { return ret; } +#else + +QString md2html(const QByteArray & src) { + return src; +} + +#endif diff --git a/qglengine/CMakeLists.txt b/qglengine/CMakeLists.txt index 93542ec..471ea04 100644 --- a/qglengine/CMakeLists.txt +++ b/qglengine/CMakeLists.txt @@ -7,21 +7,6 @@ find_qt(Qt5 Core Gui OpenGL Xml) if (NOT Qt5) message(WARNING "Building ${PROJECT_NAME} available only on Qt5!") else() - if (LIBPROJECT) - include(SDKMacros) - else() - option(LIB "System install" 0) - option(DEBUG "Build with -g3" 0) - option(DESIGNER_PLUGINS "Build qt designer plugins" 1) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -Wall") - if (DEBUG) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3") - endif() - include(DeployMacros) - endif() - if (MINGW) - find_package(MinGW REQUIRED) - endif() find_package(OpenGL REQUIRED) set_version(qglengine MAJOR 1 @@ -47,37 +32,15 @@ else() INFO "QGLEngine core library") make_rc(qglengine_core _RC) qt_add_library(qglengine_core SHARED out_CPP ${_RC}) + _qt_export_header(qglengine_core) + list(APPEND out_HDR "${CMAKE_CURRENT_BINARY_DIR}/qglengine_core_export.h") qt_target_include_directories(qglengine_core PRIVATE ${QAD_INCLUDES} "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_SOURCE_DIR}/core") qt_target_link_libraries(qglengine_core qad_utils qad_widgets assimp ${OPENGL_LIBRARIES}) message(STATUS "Building QGLEngine version ${qglengine_VERSION} (SHARED)") list(APPEND QT_MULTILIB_LIST qglengine_core) add_subdirectory(widgets) set(QT_MULTILIB_LIST ${QT_MULTILIB_LIST} PARENT_SCOPE) - if (LIBPROJECT) - sdk_install("qglengine" FALSE "qglengine_core" "${out_HDR}" "${out_QM}") - else() - if (LIB) - if (WIN32) - qt_install(FILES ${out_HDR} DESTINATION ${MINGW_INCLUDE}/qglengine) - qt_install(TARGETS qglengine_core ARCHIVE DESTINATION ${MINGW_LIB}) - qt_install(TARGETS qglengine_core RUNTIME DESTINATION ${MINGW_BIN}) - qt_install(TARGETS qglengine_core RUNTIME DESTINATION QtBin) - else() - qt_install(FILES ${out_HDR} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/qglengine) - qt_install(TARGETS qglengine_core DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) - endif() - message(STATUS "Install qglengine_core to system \"${CMAKE_INSTALL_PREFIX}\"") - else() - if(WIN32) - qt_install(TARGETS qglengine_core RUNTIME DESTINATION bin) - qt_install(TARGETS qglengine_core ARCHIVE DESTINATION lib) - else() - qt_install(TARGETS qglengine_core DESTINATION bin/lib) - endif() - qt_install(FILES ${out_HDR} DESTINATION include/qglengine) - message(STATUS "Install qglengine_core to local \"bin\", \"lib\" and \"include\"") - endif() - endif() + sdk_install("qglengine" FALSE "qglengine_core" "${out_HDR}" "${out_QM}") if (NOT DEFINED ANDROID_PLATFORM) if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/plugin") #add_subdirectory(plugin) diff --git a/qglengine/widgets/CMakeLists.txt b/qglengine/widgets/CMakeLists.txt index 4cf64b1..00613f4 100644 --- a/qglengine/widgets/CMakeLists.txt +++ b/qglengine/widgets/CMakeLists.txt @@ -16,34 +16,11 @@ set_deploy_property(${PROJECT_NAME} SHARED INFO "QGLEngine widgets library") make_rc(${PROJECT_NAME} _RC) qt_add_library(${PROJECT_NAME} SHARED out_CPP ${_RC}) +_qt_export_header(${PROJECT_NAME}) +list(APPEND out_HDR "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}_export.h") qt_target_link_libraries(${PROJECT_NAME} qad_utils qad_widgets qglengine_core) qt_target_include_directories(${PROJECT_NAME} PRIVATE ${QAD_INCLUDES} "${CMAKE_CURRENT_SOURCE_DIR}/../" "${CMAKE_CURRENT_SOURCE_DIR}/../core") list(APPEND QT_MULTILIB_LIST ${PROJECT_NAME}) set(QT_MULTILIB_LIST ${QT_MULTILIB_LIST} PARENT_SCOPE) #message(STATUS "Building ${PROJECT_NAME}") -if (LIBPROJECT) - sdk_install("qglengine" FALSE "${PROJECT_NAME}" "${out_HDR}" "${out_QM}") -else() - if (LIB) - if (WIN32) - qt_install(FILES ${out_HDR} DESTINATION ${MINGW_INCLUDE}/qglengine) - qt_install(TARGETS ${PROJECT_NAME} DESTINATION ${MINGW_LIB}) - qt_install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION ${MINGW_BIN}) - qt_install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION QtBin) - else() - qt_install(FILES ${out_HDR} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/qglengine) - qt_install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) - endif() - message(STATUS "Install ${PROJECT_NAME} to system \"${CMAKE_INSTALL_PREFIX}\"") - else() - if(WIN32) - qt_install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin) - qt_install(TARGETS ${PROJECT_NAME} ARCHIVE DESTINATION lib) - else() - qt_install(TARGETS ${PROJECT_NAME} DESTINATION bin/lib) - endif() - qt_install(TARGETS ${PROJECT_NAME} DESTINATION lib) - qt_install(FILES ${H} DESTINATION include/qglengine) - message(STATUS "Install ${PROJECT_NAME} to local \"bin\", \"lib\" and \"include\"") - endif() -endif() +sdk_install("qglengine" FALSE "${PROJECT_NAME}" "${out_HDR}" "${out_QM}") diff --git a/qglview/CMakeLists.txt b/qglview/CMakeLists.txt index 86e1110..018fbe7 100644 --- a/qglview/CMakeLists.txt +++ b/qglview/CMakeLists.txt @@ -1,70 +1,8 @@ -cmake_minimum_required(VERSION 3.0) -project(qglview) -if (IBPROJECT) - include(SDKMacros) -else() - option(LIB "System install" 0) - option(DEBUG "Build with -g3" 0) - option(DESIGNER_PLUGINS "Build qt designer plugins" 1) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3 -Wall") - if (DEBUG) - set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g3") - endif() -endif() -if (MINGW) - find_package(MinGW REQUIRED) -endif() -find_package(QAD REQUIRED) find_package(OpenGL REQUIRED) -include_directories(${QAD_INCLUDES}) -find_qt(Qt5 Core Gui OpenGL Xml) -if (NOT Qt5) - message(WARNING "Building ${PROJECT_NAME} available only on Qt5!") -else() - qt_sources(SRC) - qt_wrap(${SRC} HDRS out_HDR CPPS out_CPP QMS out_QM) - qt_add_library(${PROJECT_NAME} SHARED out_CPP) - qt_target_link_libraries(${PROJECT_NAME} qad_utils qad_widgets ${OPENGL_LIBRARIES}) - qt_target_include_directories(${PROJECT_NAME} PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}") - message(STATUS "Building ${PROJECT_NAME}") - if (LIBPROJECT) - sdk_install("qad" FALSE "${PROJECT_NAME}" "${out_HDR}" "${out_QM}") - else() - if (LIB) - if (WIN32) - qt_install(FILES ${H} DESTINATION ${MINGW_INCLUDE}/qad) - qt_install(TARGETS ${PROJECT_NAME} ARCHIVE DESTINATION ${MINGW_LIB}) - qt_install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION ${MINGW_BIN}) - qt_install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION QtBin) - else() - qt_install(FILES ${H} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/qad) - qt_install(TARGETS ${PROJECT_NAME} DESTINATION ${CMAKE_INSTALL_PREFIX}/lib) - endif() - message(STATUS "Install ${PROJECT_NAME} to system \"${CMAKE_INSTALL_PREFIX}\"") - else() - if(WIN32) - qt_install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION bin) - qt_install(TARGETS ${PROJECT_NAME} ARCHIVE DESTINATION lib) - else() - qt_install(TARGETS ${PROJECT_NAME} DESTINATION lib) - endif() - qt_install(FILES ${H} DESTINATION include/qad) - message(STATUS "Install ${PROJECT_NAME} to local \"bin\", \"lib\" and \"include\"") - endif() - endif() - foreach(_v ${_QT_VERSIONS_}) - set(MULTILIB_qglview_SUFFIX_Qt${_v} ${_v}) - set(MULTILIB_qglview_SUFFIX_Qt${_v} ${_v} PARENT_SCOPE) - endforeach() - list(APPEND QT_MULTILIB_LIST qglview) - if (NOT DEFINED ANDROID_PLATFORM) - if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/plugin") - add_subdirectory(plugin) - endif() - endif() +_qt_project(qglview FALSE "QAD" "Gui;OpenGL;Xml" "qad_widgets;qad_utils;${OPENGL_LIBRARIES}") +_qt_install(qglview FALSE "qad" "out_HDR" "out_QM") - qt_sources(test_SRC DIR "qglview_test") - qt_wrap(${test_SRC} CPPS test_CPP) - qt_add_executable(qglview_test test_CPP) - qt_target_link_libraries(qglview_test ${PROJECT_NAME}) -endif() +qt_sources(test_SRC DIR "qglview_test") +qt_wrap(${test_SRC} CPPS test_CPP) +qt_add_executable(qglview_test test_CPP) +qt_target_link_libraries(qglview_test qglview) diff --git a/qglview/plugin/CMakeLists.txt b/qglview/plugin/CMakeLists.txt index 324c740..2fd203c 100644 --- a/qglview/plugin/CMakeLists.txt +++ b/qglview/plugin/CMakeLists.txt @@ -1,18 +1 @@ -if (DESIGNER_PLUGINS) - if (NOT Qt5) - message(WARNING "Building ${PROJECT_NAME} available only on Qt5!") - else() - project(qglview_plugin) - include_directories("..") - add_definitions(-DQT_PLUGIN) - add_definitions(-DQT_NO_DEBUG) - add_definitions(-DQT_SHARED) - add_definitions(-DQDESIGNER_EXPORT_WIDGETS) - find_qt(Qt5 Core Designer Gui Widgets OpenGL) - qt_sources(SRC) - qt_wrap(${SRC} CPPS out_CPP QMS out_QM) - qt_add_library(${PROJECT_NAME} SHARED out_CPP) - qt_target_link_libraries(${PROJECT_NAME} qglview) - qt_install(TARGETS ${PROJECT_NAME} RUNTIME DESTINATION QtPlugins/designer) - endif() -endif() +_qt_plugin(qglview "Gui;Widgets;OpenGL" "qglview")