-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathCMakeLists.txt
More file actions
51 lines (42 loc) · 2.05 KB
/
Copy pathCMakeLists.txt
File metadata and controls
51 lines (42 loc) · 2.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# Configure by:
# Using MSVC 2022 and create 64-bit plugin:
# cmake -A x64 .. -G"Visual Studio 17"
# Using MSVC 2022 and create 32-bit plugin:
# cmake -A Win32 .. -G"Visual Studio 17"
#
# To enable FLTK usage:
# cmake -A x64 .. -G"Visual Studio 17" -DFLTK_ENABLED_EXPERIMENTAL=1 -DCMAKE_TOOLCHAIN_FILE="<VCPKG_PATH>/vcpkg/scripts/buildsystems/vcpkg.cmake"
# cmake -A Win32 .. -G"Visual Studio 17" -DFLTK_ENABLED_EXPERIMENTAL=1 -DCMAKE_TOOLCHAIN_FILE="<VCPKG_PATH>/vcpkg/scripts/buildsystems/vcpkg.cmake"
#
# Build by:
# cmake --build . --config Release
# or any of:
# cmake --build . --config [Debug|RelWithDebInfo|MinSizeRel]
# otherwise ('cmake --build .') could lead to /MD vs /MDd vs others mismatch:
# `warning LNK4098: defaultlib 'MSVCRT' conflicts with use of other libs fltk`
cmake_minimum_required(VERSION 3.15)
project(FATimage C CXX)
set(CMAKE_CXX_STANDARD 20)
set(SOURCE_FILES FAT_definitions.cpp FAT_definitions.h fatimg_wcx.cpp minimal_fixed_string.h resource.h sysio_winapi.cpp sysio_winapi.h wcxhead.h main_resources.rc
string_tools.cpp string_tools.h plugin_config.cpp plugin_config.h diskio.cpp diskio.h ff.c ff.h ffconf.h ffsystem.c ffunicode.c)
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set(SOURCE_FILES ${SOURCE_FILES} fatimg_64.def)
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
set(SOURCE_FILES ${SOURCE_FILES} fatimg_32.def)
endif()
add_library(fatimg_wcx SHARED ${SOURCE_FILES} )
set_target_properties(fatimg_wcx PROPERTIES OUTPUT_NAME fatimg)
if(CMAKE_SIZEOF_VOID_P EQUAL 8)
set_target_properties(fatimg_wcx PROPERTIES SUFFIX .wcx64 PREFIX "")
elseif(CMAKE_SIZEOF_VOID_P EQUAL 4)
set_target_properties(fatimg_wcx PROPERTIES SUFFIX .wcx PREFIX "")
endif()
if( DEFINED FLTK_ENABLED_EXPERIMENTAL)
find_package(FLTK CONFIG)
if( FLTK_FOUND )
target_compile_definitions(fatimg_wcx PRIVATE -DFLTK_ENABLED_EXPERIMENTAL=1)
target_include_directories(fatimg_wcx PRIVATE ${FLTK_INCLUDE_DIR})
target_link_libraries(fatimg_wcx PRIVATE fltk fltk_gl fltk_forms fltk_images)
endif()
endif()
# https://www.ghisler.ch/wiki/index.php?title=Plugins_Automated_Installation