Skip to content

update cmake.List to 6.5 QT version #63

@aragon5956

Description

@aragon5956

hello could you update the cmake.list version with :
`cmake_minimum_required(VERSION 3.12)

project(REDasm)
set(_QT_VERSION_REQ 6.5)
set(QT_VERSION_REQ "${_QT_VERSION_REQ}")
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORRC ON)
set(CMAKE_PREFIX_PATH "C:/Qt/6.5.1/msvc2019_64/lib/cmake/Qt6")

include(${CMAKE_SOURCE_DIR}/LibREDasm/cmake/sanitizers.cmake)

string(TIMESTAMP REDASM_BUILD_TIMESTAMP "%Y%m%d")
set(REDASM_GIT_VERSION "unknown")
set(REDASM_VERSION_BASE "3.0-BETA6")

find_package(Git)
find_package(Qt6 ${_QT_VERSION_REQ} COMPONENTS Widgets REQUIRED)

find_package(Qt6X11Extras ${_QT_VERSION_REQ} REQUIRED) # Needed for KDDockWidgets

find_package(Qt6LinguistTools ${_QT_VERSION_REQ})

include(LibREDasm/cmake/CPM.cmake)

... (I'm not changing anything in the middle) ...

qt6_wrap_ui(UI_HDRS ${UI_FILES})

... (I'm not changing anything in the middle) ...

if(Qt6LinguistTools_FOUND) # Prepare translations
message(STATUS "${PROJECT_NAME}: Adding multilanguage support")
qt6_create_translation(QM_FILES ${ALL_SOURCES} translations/redasm_en.ts)
configure_file(translations.qrc ${CMAKE_BINARY_DIR} COPYONLY)
set(TRANSLATIONS_QRC ${CMAKE_BINARY_DIR}/translations.qrc)
else()
message(STATUS "${PROJECT_NAME}: Multilanguage support NOT available")
endif()

add_executable(${PROJECT_NAME} ${GUI_TYPE}
${ALL_SOURCES} ${RESOURCES}
${TRANSLATIONS_QRC} ${QM_FILES}
"${CMAKE_SOURCE_DIR}/res/windows/resources.rc")

target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_17)
set_target_properties(${PROJECT_NAME} PROPERTIES CXX_EXTENSIONS OFF)

TODO: refactor this to target_include_directories(target PUBLIC ...) in the submodules

target_include_directories(${PROJECT_NAME} PRIVATE
${CMAKE_CURRENT_SOURCE_DIR}
LibREDasm
libs)

target_link_libraries(${PROJECT_NAME} PRIVATE
Qt6::Core
Qt6::Gui
Qt6::Widgets
KDAB::kddockwidgets
qhexview-lib
LibREDasm)

Include Threads

TODO: perhaps this should be a PUBLIC dependency of LibREDasm?

find_package(Threads REQUIRED)
target_link_libraries(${PROJECT_NAME} PRIVATE ${CMAKE_THREAD_LIBS_INIT})

... (I'm not changing anything in the end) ...

if(${CMAKE_CXX_COMPILER_ID} STREQUAL "Clang")
target_compile_options(${PROJECT_NAME} PRIVATE -Wall -Wno-missing-braces)
endif()

string(TIMESTAMP REDASM_ARCHIVE_DATE "%Y%m%d")
set(REDASM_ARCHIVE_NAME "${PROJECT_NAME}${CMAKE_SYSTEM_NAME}${CMAKE_SYSTEM_PROCESSOR}_${REDASM_ARCHIVE_DATE}.zip")
set(REDASM_DEPLOY_DIR ${CMAKE_BINARY_DIR}/deploy)

Deploy Qt DLLs on Windows

https://stackoverflow.com/a/41199492/1806760

if(Qt6_FOUND AND WIN32 AND TARGET Qt6::qmake AND NOT TARGET Qt6::windeployqt)
get_target_property(_qt6_qmake_location Qt6::qmake IMPORTED_LOCATION)

execute_process(
    COMMAND "${_qt6_qmake_location}" -query QT_INSTALL_PREFIX
    RESULT_VARIABLE return_code
    OUTPUT_VARIABLE qt6_install_prefix
    OUTPUT_STRIP_TRAILING_WHITESPACE)

set(_WINDEPLOYQT_EXECUTABLE "${qt6_install_prefix}/bin/windeployqt.exe")

if(EXISTS ${_WINDEPLOYQT_EXECUTABLE})
    set(WINDEPLOYQT_EXECUTABLE ${_WINDEPLOYQT_EXECUTABLE})
endif()

endif()

add_custom_command(OUTPUT REDasmPrePackage
COMMAND ${CMAKE_COMMAND} --install . --prefix ${REDASM_DEPLOY_DIR} --config ${CMAKE_BUILD_TYPE}
VERBATIM)

if(WINDEPLOYQT_EXECUTABLE)
add_custom_command(OUTPUT REDasmPackage
WORKING_DIRECTORY ${REDASM_DEPLOY_DIR}
COMMAND ${WINDEPLOYQT_EXECUTABLE} .
#COMMAND ${CMAKE_COMMAND} -E tar cvf ../${REDASM_ARCHIVE_NAME} --format=zip .
DEPENDS REDasmPrePackage
VERBATIM)
else()
add_custom_command(OUTPUT REDasmPackage
WORKING_DIRECTORY ${REDASM_DEPLOY_DIR}
#COMMAND ${CMAKE_COMMAND} -E tar cvf ../${REDASM_ARCHIVE_NAME} --format=zip .
DEPENDS REDasmPrePackage
VERBATIM)
endif()

add_custom_target(REDasmDeploy DEPENDS REDasmPackage)

if(NOT WIN32)
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E create_symlink submodules plugins)
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E create_symlink ${CMAKE_SOURCE_DIR}/submodules/database database)
endif()

install(TARGETS ${PROJECT_NAME} DESTINATION ${REDASM_INSTALL_BINDIR})
`
and create sanitizers.cmake file
cordially

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions