mirror of
https://github.com/QuasarApp/qca.git
synced 2025-05-09 17:29:33 +00:00
On Windows when compiling with Visual Studio will be produced special .pdb files for debuggins purposes. It must be put next to target runtime (.dll or .exe) file.
114 lines
4.4 KiB
CMake
114 lines
4.4 KiB
CMake
|
|
IF (Qt5Core_FOUND)
|
|
# FindQt4.cmake wasn't used, so define it here
|
|
MACRO (QT4_GET_MOC_INC_DIRS _moc_INC_DIRS)
|
|
SET(${_moc_INC_DIRS})
|
|
GET_DIRECTORY_PROPERTY(_inc_DIRS INCLUDE_DIRECTORIES)
|
|
|
|
FOREACH(_current ${_inc_DIRS})
|
|
SET(${_moc_INC_DIRS} ${${_moc_INC_DIRS}} "-I" ${_current})
|
|
ENDFOREACH(_current ${_inc_DIRS})
|
|
ENDMACRO(QT4_GET_MOC_INC_DIRS)
|
|
|
|
MACRO(SETUP_QT5_DIRS)
|
|
GET_TARGET_PROPERTY(QMAKE_EXECUTABLE ${Qt5Core_QMAKE_EXECUTABLE} LOCATION)
|
|
EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_LIBS" OUTPUT_VARIABLE QT_LIBRARY_DIR )
|
|
EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_PREFIX" OUTPUT_VARIABLE QT_PREFIX_DIR )
|
|
EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_PLUGINS" OUTPUT_VARIABLE QT_PLUGINS_DIR )
|
|
EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_BINS" OUTPUT_VARIABLE QT_BINARY_DIR )
|
|
EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_HEADERS" OUTPUT_VARIABLE QT_HEADERS_DIR )
|
|
EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_DOCS" OUTPUT_VARIABLE QT_DOC_DIR )
|
|
EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_DATA" OUTPUT_VARIABLE QT_DATA_DIR )
|
|
EXEC_PROGRAM( ${QMAKE_EXECUTABLE} ARGS "-query QT_INSTALL_ARCHDATA" OUTPUT_VARIABLE QT_ARCHDATA_DIR )
|
|
SET( QT_MKSPECS_DIR "${QT_ARCHDATA_DIR}/mkspecs" )
|
|
ENDMACRO(SETUP_QT5_DIRS)
|
|
ELSE (Qt5Core_FOUND)
|
|
# Cmake FindQt4 module doesn't provide QT_INSTALL_PREFIX and QT_INSTALL_DATA vars
|
|
# It will be done here
|
|
MACRO(SETUP_QT4_DIRS)
|
|
_qt4_query_qmake(QT_INSTALL_PREFIX QT_PREFIX_DIR)
|
|
_qt4_query_qmake(QT_INSTALL_DATA QT_DATA_DIR)
|
|
ENDMACRO(SETUP_QT4_DIRS)
|
|
ENDIF()
|
|
|
|
MACRO(MY_AUTOMOC _srcsList)
|
|
# QT4_GET_MOC_INC_DIRS(_moc_INCS)
|
|
FOREACH (_current_FILE ${${_srcsList}})
|
|
GET_FILENAME_COMPONENT(_abs_FILE ${_current_FILE} ABSOLUTE)
|
|
GET_FILENAME_COMPONENT(_basename ${_current_FILE} NAME_WE)
|
|
SET(_moc ${CMAKE_CURRENT_BINARY_DIR}/${_basename}.moc)
|
|
# SET(extra_moc_argument)
|
|
# if(WIN32)
|
|
# SET(extra_moc_argument -DWIN32)
|
|
# endif(WIN32)
|
|
QT4_GENERATE_MOC(${_abs_FILE} ${_moc})
|
|
# ADD_CUSTOM_COMMAND(OUTPUT ${_moc}
|
|
# COMMAND ${QT_MOC_EXECUTABLE}
|
|
# ARGS ${extra_moc_argument} ${_moc_INCS} -o ${_moc} ${_abs_FILE}
|
|
# DEPENDS ${_current_FILE}
|
|
# )
|
|
LIST(APPEND ${_srcsList} ${_moc})
|
|
ENDFOREACH (_current_FILE)
|
|
ENDMACRO(MY_AUTOMOC)
|
|
|
|
macro(set_enabled_plugin PLUGIN ENABLED)
|
|
# To nice looks
|
|
if(ENABLED)
|
|
set(ENABLED "on")
|
|
else(ENABLED)
|
|
set(ENABLED "off")
|
|
endif(ENABLED)
|
|
set(WITH_${PLUGIN}_PLUGIN_INTERNAL ${ENABLED} CACHE INTERNAL "")
|
|
endmacro(set_enabled_plugin)
|
|
|
|
macro(enable_plugin PLUGIN)
|
|
set_enabled_plugin(${PLUGIN} "on")
|
|
endmacro(enable_plugin)
|
|
|
|
macro(disable_plugin PLUGIN)
|
|
set_enabled_plugin(${PLUGIN} "off")
|
|
endmacro(disable_plugin)
|
|
|
|
# it used to build examples and tools
|
|
macro(target_link_qca_libraries TARGET)
|
|
# Link with QCA library
|
|
target_link_libraries(${TARGET} ${QT_QTCORE_LIBRARY})
|
|
target_link_libraries(${TARGET} ${QCA_LIB_NAME})
|
|
|
|
# Statically link with all enabled QCA plugins
|
|
if(STATIC_PLUGINS)
|
|
target_link_libraries(${TARGET} ${QT_QTCORE_LIB_DEPENDENCIES})
|
|
foreach(PLUGIN IN LISTS PLUGINS)
|
|
# Check plugin for enabled
|
|
if(WITH_${PLUGIN}_PLUGIN_INTERNAL)
|
|
target_link_libraries(${TARGET} qca-${PLUGIN})
|
|
endif(WITH_${PLUGIN}_PLUGIN_INTERNAL)
|
|
endforeach(PLUGIN)
|
|
endif(STATIC_PLUGINS)
|
|
endmacro(target_link_qca_libraries)
|
|
|
|
# it used to build unittests
|
|
macro(target_link_qca_test_libraries TARGET)
|
|
target_link_qca_libraries(${TARGET})
|
|
target_link_libraries(${TARGET} ${QT_QTTEST_LIBRARY})
|
|
endmacro(target_link_qca_test_libraries)
|
|
|
|
# it used to build unittests
|
|
macro(add_qca_test TARGET DESCRIPTION)
|
|
add_test(NAME "${DESCRIPTION}"
|
|
WORKING_DIRECTORY "${CMAKE_RUNTIME_OUTPUT_DIRECTORY}"
|
|
COMMAND "${TARGET}")
|
|
endmacro(add_qca_test)
|
|
|
|
macro(install_pdb TARGET INSTALL_PATH)
|
|
if(MSVC)
|
|
get_target_property(LOCATION ${TARGET} LOCATION_DEBUG)
|
|
string(REGEX REPLACE "\\.[^.]*$" ".pdb" LOCATION "${LOCATION}")
|
|
install(FILES ${LOCATION} DESTINATION ${INSTALL_PATH} CONFIGURATIONS Debug)
|
|
|
|
get_target_property(LOCATION ${TARGET} LOCATION_RELWITHDEBINFO)
|
|
string(REGEX REPLACE "\\.[^.]*$" ".pdb" LOCATION "${LOCATION}")
|
|
install(FILES ${LOCATION} DESTINATION ${INSTALL_PATH} CONFIGURATIONS RelWithDebInfo)
|
|
endif(MSVC)
|
|
endmacro(install_pdb)
|