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
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
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)
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