2022-01-15 00:14:12 +01:00
|
|
|
project(main)
|
|
|
|
|
2022-02-06 22:29:16 +01:00
|
|
|
add_executable(main ${APPLICATION_TYPE}
|
2022-01-15 00:14:12 +01:00
|
|
|
source/main.cpp
|
2023-06-01 18:35:41 +02:00
|
|
|
source/crash_handlers.cpp
|
2022-01-15 00:14:12 +01:00
|
|
|
|
|
|
|
source/window/window.cpp
|
|
|
|
source/window/win_window.cpp
|
|
|
|
source/window/macos_window.cpp
|
|
|
|
source/window/linux_window.cpp
|
|
|
|
|
2023-07-13 14:08:23 +02:00
|
|
|
source/messaging/common.cpp
|
|
|
|
source/messaging/linux.cpp
|
|
|
|
source/messaging/macos.cpp
|
|
|
|
source/messaging/win.cpp
|
|
|
|
|
2022-01-15 00:14:12 +01:00
|
|
|
source/init/splash_window.cpp
|
|
|
|
source/init/tasks.cpp
|
|
|
|
|
|
|
|
${IMHEX_ICON}
|
|
|
|
)
|
|
|
|
|
|
|
|
target_include_directories(main PUBLIC include)
|
2023-06-18 14:42:48 +02:00
|
|
|
setupCompilerFlags(main)
|
2022-01-15 00:14:12 +01:00
|
|
|
|
2022-12-29 23:32:40 +01:00
|
|
|
set(LIBROMFS_RESOURCE_LOCATION ${CMAKE_CURRENT_SOURCE_DIR}/romfs)
|
2022-12-05 15:29:19 +01:00
|
|
|
set(LIBROMFS_PROJECT_NAME imhex)
|
|
|
|
add_subdirectory(${CMAKE_CURRENT_SOURCE_DIR}/../lib/external/libromfs ${CMAKE_CURRENT_BINARY_DIR}/main/libromfs EXCLUDE_FROM_ALL)
|
|
|
|
set_target_properties(${LIBROMFS_LIBRARY} PROPERTIES POSITION_INDEPENDENT_CODE ON)
|
|
|
|
|
2023-09-16 13:08:19 +02:00
|
|
|
if (WIN32)
|
|
|
|
# HACK: `imhex` -> `imhex-gui` and we add a forwarder as `imhex`, so that the user can just run `imhex` and it will start the GUI
|
|
|
|
# Workaround for .NET plugin crashing caused by the console window being freed.
|
|
|
|
set(IMHEX_APPLICATION_NAME "imhex-gui")
|
|
|
|
add_executable(imhex-forwarder
|
|
|
|
source/forwarder/main.cpp
|
|
|
|
${IMHEX_ICON})
|
|
|
|
target_link_libraries(imhex-forwarder PRIVATE libwolv-io ${FMT_LIBRARIES})
|
|
|
|
set_target_properties(imhex-forwarder PROPERTIES
|
2022-01-15 00:14:12 +01:00
|
|
|
OUTPUT_NAME "imhex"
|
|
|
|
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/..
|
|
|
|
CXX_VISIBILITY_PRESET hidden
|
|
|
|
POSITION_INDEPENDENT_CODE ON)
|
2023-09-16 13:08:19 +02:00
|
|
|
else ()
|
|
|
|
set(IMHEX_APPLICATION_NAME "imhex")
|
|
|
|
endif ()
|
|
|
|
|
|
|
|
set_target_properties(main PROPERTIES
|
|
|
|
OUTPUT_NAME ${IMHEX_APPLICATION_NAME}
|
|
|
|
RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/..
|
|
|
|
CXX_VISIBILITY_PRESET hidden
|
|
|
|
POSITION_INDEPENDENT_CODE ON)
|
2022-01-15 00:14:12 +01:00
|
|
|
|
2022-02-02 17:19:50 +01:00
|
|
|
add_compile_definitions(IMHEX_PROJECT_NAME="${PROJECT_NAME}")
|
|
|
|
|
2023-01-04 13:23:42 +01:00
|
|
|
target_link_libraries(main PRIVATE libromfs-imhex libimhex ${FMT_LIBRARIES})
|
2022-01-15 00:14:12 +01:00
|
|
|
if (WIN32)
|
2023-01-04 13:23:42 +01:00
|
|
|
target_link_libraries(main PRIVATE usp10 wsock32 ws2_32 Dwmapi.lib)
|
2022-01-15 00:14:12 +01:00
|
|
|
else ()
|
2023-01-04 13:23:42 +01:00
|
|
|
target_link_libraries(main PRIVATE pthread)
|
2022-03-27 00:01:28 +01:00
|
|
|
endif ()
|
|
|
|
|
|
|
|
if (APPLE)
|
|
|
|
add_compile_definitions(GL_SILENCE_DEPRECATION)
|
2023-05-20 13:37:57 +02:00
|
|
|
endif ()
|