You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.6 KiB
88 lines
2.6 KiB
|
1 year ago
|
# Copyright 2023 Ingemar Hedvall
|
||
|
|
# SPDX-License-Identifier: MIT
|
||
|
|
cmake_minimum_required(VERSION 3.20)
|
||
|
|
project(
|
||
|
|
A2lExplorer
|
||
|
|
VERSION 1.0
|
||
|
|
DESCRIPTION "Simple A2L file explorer"
|
||
|
|
LANGUAGES CXX)
|
||
|
|
|
||
|
|
set(CMAKE_CXX_STANDARD 20)
|
||
|
|
|
||
|
|
include("../script/utillib.cmake")
|
||
|
|
|
||
|
|
add_executable(a2lexplorer
|
||
|
|
src/a2lexplorer.cpp src/a2lexplorer.h
|
||
|
|
src/mainframe.cpp src/mainframe.h
|
||
|
|
src/a2ldocument.cpp src/a2ldocument.h
|
||
|
|
src/a2lview.cpp src/a2lview.h
|
||
|
|
src/a2lexplorer.rc
|
||
|
|
src/childframe.cpp src/childframe.h
|
||
|
|
src/windowid.h
|
||
|
|
src/a2ltreelist.cpp
|
||
|
|
src/a2ltreelist.h
|
||
|
|
src/a2lpropertygrid.cpp
|
||
|
|
src/a2lpropertygrid.h)
|
||
|
|
|
||
|
|
target_include_directories(a2lexplorer PRIVATE a2l)
|
||
|
|
|
||
|
|
|
||
|
|
if(MSVC)
|
||
|
|
target_link_options(a2lexplorer PRIVATE /SUBSYSTEM:WINDOWS)
|
||
|
|
target_compile_definitions(a2lexplorer PRIVATE _WIN32_WINNT=0x0A00)
|
||
|
|
endif()
|
||
|
|
|
||
|
|
if(MINGW)
|
||
|
|
target_link_options(a2lexplorer PRIVATE -mwindows -static -fstack-protector)
|
||
|
|
endif()
|
||
|
|
|
||
|
|
target_link_libraries(a2lexplorer PRIVATE a2l)
|
||
|
|
target_link_libraries(a2lexplorer PRIVATE util)
|
||
|
|
|
||
|
|
if(VCPKG)
|
||
|
|
find_package(expat CONFIG REQUIRED)
|
||
|
|
target_link_libraries(a2lexplorer PRIVATE expat::expat)
|
||
|
|
|
||
|
|
find_package(Boost REQUIRED COMPONENTS filesystem locale)
|
||
|
|
target_link_libraries(a2lexplorer PRIVATE Boost::boost Boost::filesystem Boost::locale)
|
||
|
|
|
||
|
|
find_package(wxWidgets CONFIG REQUIRED)
|
||
|
|
target_link_libraries(a2lexplorer PRIVATE wx::propgrid wx::adv wx::core wx::base)
|
||
|
|
else()
|
||
|
|
include("../script/expat.cmake")
|
||
|
|
include("../script/wxwidgets.cmake")
|
||
|
|
include("../script/boost.cmake")
|
||
|
|
|
||
|
|
|
||
|
|
target_include_directories(a2lexplorer PRIVATE ${wxWidgets_INCLUDE_DIRS})
|
||
|
|
target_include_directories(a2lexplorer PRIVATE ${Boost_INCLUDE_DIRS})
|
||
|
|
|
||
|
|
target_compile_definitions(a2lexplorer PRIVATE XML_STATIC)
|
||
|
|
|
||
|
|
target_link_libraries(a2lexplorer PRIVATE EXPAT::EXPAT)
|
||
|
|
target_link_libraries(a2lexplorer PRIVATE ${wxWidgets_LIBRARIES})
|
||
|
|
target_link_libraries(a2lexplorer PRIVATE ${wxWidgets_LIB_DIR}/wxscintillad.lib)
|
||
|
|
target_link_libraries(a2lexplorer PRIVATE ${wxWidgets_LIB_DIR}/wxlexillad.lib)
|
||
|
|
target_link_libraries(a2lexplorer PRIVATE ${Boost_LIBRARIES})
|
||
|
|
endif()
|
||
|
|
|
||
|
|
|
||
|
|
if(MINGW)
|
||
|
|
target_link_options(a2lexplorer PRIVATE -mwindows -static -fstack-protector)
|
||
|
|
target_link_libraries(a2lexplorer PRIVATE iconv)
|
||
|
|
elseif (MSVC)
|
||
|
|
target_link_options(a2lexplorer PRIVATE /SUBSYSTEM:WINDOWS)
|
||
|
|
target_compile_definitions(a2lexplorer PRIVATE -D_WIN32_WINNT=0x0A00)
|
||
|
|
endif ()
|
||
|
|
|
||
|
|
|
||
|
|
if(WIN32)
|
||
|
|
target_link_libraries(a2lexplorer PRIVATE bcrypt)
|
||
|
|
target_link_libraries(a2lexplorer PRIVATE ws2_32)
|
||
|
|
target_link_libraries(a2lexplorer PRIVATE mswsock)
|
||
|
|
endif()
|
||
|
|
|
||
|
|
if(UNIX)
|
||
|
|
target_link_libraries(a2lexplorer PRIVATE rt icuuc icui18n)
|
||
|
|
endif(UNIX)
|