metaforce/hecl-gui/CMakeLists.txt

141 lines
3.6 KiB
CMake
Raw Normal View History

2017-12-05 19:31:43 -08:00
cmake_minimum_required(VERSION 3.10)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
2021-01-23 16:26:28 -08:00
find_package(Qt6 COMPONENTS Core5Compat Network Widgets Xml Gui REQUIRED PATHS /usr/local/opt/qt)
2017-12-05 19:31:43 -08:00
2018-01-09 22:19:48 -08:00
file(GLOB QUAZIP_SRCS quazip/quazip/*.c quazip/quazip/*.cpp quazip/quazip/*.h)
list(REMOVE_ITEM QUAZIP_SRCS
${CMAKE_CURRENT_SOURCE_DIR}/quazip/quazip/quagzipfile.cpp
${CMAKE_CURRENT_SOURCE_DIR}/quazip/quazip/quagzipfile.h
2021-02-20 15:02:36 -08:00
${CMAKE_CURRENT_SOURCE_DIR}/quazip/quazip/quaadler32.cpp
${CMAKE_CURRENT_SOURCE_DIR}/quazip/quazip/quaadler32.h
${CMAKE_CURRENT_SOURCE_DIR}/quazip/quazip/quacrc32.cpp
${CMAKE_CURRENT_SOURCE_DIR}/quazip/quazip/quacrc32.h
)
2019-07-27 18:20:18 -07:00
if (NOT MSVC)
set_source_files_properties(${QUAZIP_SRCS} PROPERTIES COMPILE_OPTIONS -Wno-deprecated-declarations)
endif()
2018-01-09 22:19:48 -08:00
2021-02-20 15:02:36 -08:00
set(QUAZIP_LIBS ${ZLIB_LIBRARIES})
add_executable(hecl-gui WIN32 MACOSX_BUNDLE
ArgumentEditor.cpp
ArgumentEditor.hpp
ArgumentEditor.ui
Common.cpp
Common.hpp
2020-04-14 23:13:11 -07:00
CVarDialog.cpp
CVarDialog.hpp
CVarDialog.ui
DownloadManager.cpp
DownloadManager.hpp
ErrorLabel.hpp
EscapeSequenceParser.cpp
EscapeSequenceParser.hpp
ExtractZip.cpp
ExtractZip.hpp
FileDirDialog.hpp
FindBlender.cpp
FindBlender.hpp
MainWindow.cpp
MainWindow.hpp
MainWindow.ui
SysReqTableView.cpp
SysReqTableView.hpp
VectorISATableModel.hpp
VectorISATableModelIntel.hpp
VectorISATableView.cpp
VectorISATableView.hpp
main.cpp
${QUAZIP_SRCS}
)
target_compile_definitions(hecl-gui PRIVATE
# Disable implicit conversions from ASCII to QString.
-DQT_NO_CAST_FROM_ASCII
-DQT_NO_CAST_TO_ASCII
# Disable implicit conversions of QByteArray to const char* or const void*
-DQT_NO_CAST_FROM_BYTEARRAY
# Disable narrowing conversions in signal/slot connect() calls.
-DQT_NO_NARROWING_CONVERSIONS_IN_CONNECT
# Disable unsafe overloads of QProcess' start() function.
-DQT_NO_PROCESS_COMBINED_ARGUMENT_START
# Disable implicit QString->QUrl conversions to enforce use of proper resolving functions.
-DQT_NO_URL_CAST_FROM_STRING
# Allows for more efficient string concatenation, resulting in less temporaries.
2020-04-14 23:13:11 -07:00
-DQT_USE_QSTRINGBUILDER
)
2019-08-25 18:33:03 -07:00
target_link_libraries(hecl-gui PRIVATE
2021-01-23 16:26:28 -08:00
Qt6::Core
Qt6::Core5Compat
Qt6::Gui
Qt6::Network
Qt6::Widgets
Qt6::Xml
hecl-light
zeus
2020-06-24 09:04:17 -07:00
${QUAZIP_LIBS}
)
target_include_directories(hecl-gui PRIVATE quazip/quazip)
target_compile_definitions(hecl-gui PRIVATE QUAZIP_STATIC=1)
if(APPLE)
target_sources(hecl-gui PRIVATE
MacOSSystemVersion.hpp
MacOSSystemVersion.mm
)
set_source_files_properties(MacOSSystemVersion.mm
PROPERTIES COMPILE_FLAGS -fobjc-arc
)
find_library(FOUNDATION_LIBRARY Foundation)
target_link_libraries(hecl-gui PRIVATE ${FOUNDATION_LIBRARY})
elseif("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux")
target_link_libraries(hecl-gui PRIVATE
dl
pthread
)
endif()
if(WIN32)
target_sources(hecl-gui PRIVATE
platforms/win/hecl-gui.manifest
platforms/win/hecl-gui.rc
)
2021-02-20 15:02:36 -08:00
target_link_libraries(hecl-gui PRIVATE
Version)
elseif(APPLE)
target_sources(hecl-gui PRIVATE platforms/mac/mainicon.icns)
set_source_files_properties(platforms/mac/mainicon.icns PROPERTIES
MACOSX_PACKAGE_LOCATION Resources
)
endif()
add_subdirectory(platforms/freedesktop)
declare_qticon_target()
target_sources(hecl-gui PRIVATE mainicon_qt.cpp)
if(COMMAND add_sanitizers)
add_sanitizers(hecl-gui)
endif()
if (NOT MSVC)
target_compile_options(hecl-gui PRIVATE -Wno-misleading-indentation)
endif()
set_target_properties(hecl-gui PROPERTIES
MACOSX_BUNDLE_INFO_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/platforms/mac/Info.plist"
)