mirror of
https://github.com/sarah-walker-pcem/pcem.git
synced 2025-07-23 19:50:35 +02:00
[skip ci] More Meson Stuff
This commit is contained in:
61
README.md
61
README.md
@@ -16,53 +16,50 @@ You will need the following libraries and buildtools (and their dependencies):
|
|||||||
- SDL2
|
- SDL2
|
||||||
- wxWidgets 3.x
|
- wxWidgets 3.x
|
||||||
- OpenAL
|
- OpenAL
|
||||||
- CMake
|
- Meson
|
||||||
- Ninja (Recommended, but you can use a Makefile generator if you prefer)
|
- Ninja
|
||||||
|
|
||||||
Open a terminal window, navigate to the PCem directory then enter:
|
Open a terminal window, navigate to the PCem directory then enter:
|
||||||
### Linux/BSD
|
|
||||||
```
|
```
|
||||||
cmake -G "Ninja" -DCMAKE_BUILD_TYPE=Release .
|
meson --buildtype release build
|
||||||
|
cd build
|
||||||
ninja
|
ninja
|
||||||
|
meson install --destdir=install
|
||||||
```
|
```
|
||||||
|
|
||||||
### Windows (MSYS2)
|
then `./install/bin/pcem` to run.
|
||||||
|
|
||||||
|
The Linux/BSD versions store BIOS ROM images, configuration files, and other data in `~/.pcem`.
|
||||||
|
|
||||||
|
Meson configure options are :
|
||||||
```
|
```
|
||||||
cmake -G "Ninja" -DMSYS=TRUE -DCMAKE_BUILD_TYPE=Release .
|
--buildtype release : Generate release build. Recommended for regular use.
|
||||||
ninja
|
--buildtype debug : Compile with debugging enabled.
|
||||||
|
-Duse-networking=true : Build with networking support.
|
||||||
|
-Duse-pcap-networking=true : Build with pcap networking support. (On by default needs USE_NETWORKING to compile) Requires libpcap
|
||||||
|
-Duse-alsa=true : Build with support for MIDI output through ALSA. Requires libasound.
|
||||||
|
-Duse-plugin-engine=true : Build with plugin support. Builds libpcem-plugin-api and links PCem with it.
|
||||||
```
|
```
|
||||||
|
|
||||||
then `./src/pcem` to run.
|
If you are using --buildtype debug, there are some more debug options you can enable if needed
|
||||||
|
|
||||||
The Linux/BSD versions store BIOS ROM images, configuration files, and other data in `~/.pcem`
|
|
||||||
|
|
||||||
configure options are :
|
|
||||||
```
|
```
|
||||||
-DCMAKE_BUILD_TYPE=Release : Generate release build. Recommended for regular use.
|
-Dslirp-debug=true : Build PCem with SLIRP_DEBUG debug output
|
||||||
-DCMAKE_BUILD_TYPE=Debug : Compile with debugging enabled.
|
-Drecompiler-debug=true : Build PCem with RECOMPILER_DEBUG debug output
|
||||||
-DUSE_NETWORKING=ON : Build with networking support.
|
-Dne2000-debug=true : Build PCem with NE2000_DEBUG debug output
|
||||||
-DUSE_PCAP_NETWORKING=ON : Build with pcap networking support. (On by default needs USE_NETWORKING to compile) Requires libpcap
|
-Demu8k-debug-registers=true : Build PCem with EMU8K_DEBUG_REGISTERS debug output
|
||||||
-DUSE_ALSA=ON : Build with support for MIDI output through ALSA. Requires libasound.
|
-Dsb-dsp-record-debug=true : Build PCem with SB_DSP_RECORD_DEBUG debug output
|
||||||
-DPLUGIN_ENGINE=ON : Build with plugin support. Builds libpcem-plugin-api and links PCem with it.
|
-Dmach64-debug=true : Build PCem with MACH64_DEBUG debug output
|
||||||
|
-Dplugin-debug=true : Build PCem with PLUGIN_DEBUG debug output
|
||||||
|
-Dextra-debug=true : Build PCem with DEBUG_EXTRA debug output
|
||||||
|
-Dprinter-debug=true : Build PCem with PRINTER_DEBUG debug output
|
||||||
```
|
```
|
||||||
|
|
||||||
If you are using -DCMAKE_BUILD_TYPE=Debug, there are some more debug options you can enable if needed
|
They are some extra modules you can add if you build with `-Dallow-experimental-code=true`. These modules are untested.
|
||||||
```
|
|
||||||
-DPCEM_SLIRP_DEBUG=ON : Build PCem with SLIRP_DEBUG debug output
|
|
||||||
-DPCEM_RECOMPILER_DEBUG=ON : Build PCem with RECOMPILER_DEBUG debug output
|
|
||||||
-DPCEM_NE2000_DEBUG=ON : Build PCem with NE2000_DEBUG debug output
|
|
||||||
-DPCEM_EMU8K_DEBUG_REGISTERS=ON : Build PCem with EMU8K_DEBUG_REGISTERS debug output
|
|
||||||
-DPCEM_SB_DSP_RECORD_DEBUG=ON : Build PCem with SB_DSP_RECORD_DEBUG debug output
|
|
||||||
-DPCEM_MACH64_DEBUG=ON : Build PCem with MACH64_DEBUG debug output
|
|
||||||
-DPCEM_DEBUG_EXTRA=ON : Build PCem with DEBUG_EXTRA debug output
|
|
||||||
```
|
|
||||||
|
|
||||||
They are some extra modules you can add if you build with `-DUSE_EXPERIMENTAL=ON`. These modules are untested.
|
|
||||||
incomplete, and may or may not be in a future build of PCem. We do not provide builds with these enabled as
|
incomplete, and may or may not be in a future build of PCem. We do not provide builds with these enabled as
|
||||||
well.
|
well.
|
||||||
```
|
```
|
||||||
-DUSE_EXPERIMENTAL_PGC=ON : Build PCem with Professional Graphics Controller support.
|
-Duse-experimental-pdc=true : Build PCem with Professional Graphics Controller support.
|
||||||
-DUSE_EXPERIMENTAL_PRINTER=ON : Build PCem with Printer support. Requires freetype.
|
-Duse-experimental-printer=true : Build PCem with Printer support. Requires freetype.
|
||||||
```
|
```
|
||||||
The menu is a pop-up menu in the Linux/BSD port. Right-click on the main window when mouse is not
|
The menu is a pop-up menu in the Linux/BSD port. Right-click on the main window when mouse is not
|
||||||
captured.
|
captured.
|
||||||
|
@@ -1,51 +1,48 @@
|
|||||||
#install(TARGETS pcem RUNTIME DESTINATION bin)
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/430vx')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/acer386')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/ami286')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/ami386')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/ami386dx')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/ami486')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/amixt')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/cbm_pc10')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/cmdpc30')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/dells200')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/deskpro386')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/dtk')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/dtk386')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/endeavor')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/europc')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/genxt')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/hot-433')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/huyndaixt')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/huyndaixte')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/ibmat')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/ibmpc')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/ibmpcjr')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/ibmps1es')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/ibmxt')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/jukopc')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/ltxt')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/lxt3')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/mach64gx')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/megapc')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/mr386dx')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/olivetti_m24')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/oti067')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/pc1512')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/pc1640')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/pc200')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/pc2086')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/pc3086')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/px386')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/pxxt')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/revenge')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/sis496')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/tandy')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/tandy1000hx')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/tandy1000sl2')
|
||||||
|
install_data('roms.txt', install_dir: get_option('datadir') / 'roms/win486')
|
||||||
|
install_data('configs.txt', install_dir: get_option('datadir') / 'configs')
|
||||||
|
install_man('pcem.man.1')
|
||||||
|
|
||||||
#install(DIRECTORY ${CMAKE_SOURCE_DIR}/nvr/ DESTINATION share/pcem/nvr/default)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/430vx)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/acer386)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/ami286)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/ami386)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/ami386dx)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/ami486)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/amixt)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/cbm_pc10)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/cmdpc30)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/dells200)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/deskpro386)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/dtk)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/dtk386)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/endeavor)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/europc)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/genxt)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/hot-433)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/huyndaixt)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/huyndaixte)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/ibmat)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/ibmpc)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/ibmpcjr)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/ibmps1es)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/ibmxt)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/jukopc)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/ltxt)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/lxt3)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/mach64gx)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/megapc)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/mr386dx)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/olivetti_m24)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/oti067)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/pc1512)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/pc1640)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/pc200)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/pc2086)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/pc3086)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/px386)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/pxxt)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/revenge)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/sis496)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/tandy)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/tandy1000hx)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/tandy1000sl2)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/roms.txt DESTINATION share/pcem/roms/win486)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/configs.txt DESTINATION share/pcem/configs)
|
|
||||||
#install(FILES ${CMAKE_SOURCE_DIR}/docs/pcem.man DESTINATION share/man/man1)
|
|
||||||
#install(DIRECTORY ${CMAKE_SOURCE_DIR}/includes/public/ DESTINATION include FILES_MATCHING PATTERN *.h)
|
|
@@ -46,4 +46,6 @@ pcem_include_dirs = include_directories(
|
|||||||
'private/video',
|
'private/video',
|
||||||
'private/wx-ui',
|
'private/wx-ui',
|
||||||
'public'
|
'public'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
install_subdir('public', install_dir: get_option('includedir') / 'pcem', strip_directory : true)
|
@@ -5,13 +5,14 @@ add_project_arguments('-DPCEM_VERSION_STRING="' + meson.project_version() + '"',
|
|||||||
pcem_private_api = []
|
pcem_private_api = []
|
||||||
pcem_public_api = []
|
pcem_public_api = []
|
||||||
pcem_src = []
|
pcem_src = []
|
||||||
|
pcem_project_libraries = []
|
||||||
|
|
||||||
subdir('includes')
|
subdir('includes')
|
||||||
|
|
||||||
compiler = meson.get_compiler('c')
|
compiler = meson.get_compiler('c')
|
||||||
sdl2 = dependency('sdl2')
|
sdl2 = dependency('sdl2')
|
||||||
openal = dependency('openal')
|
openal = dependency('openal')
|
||||||
opengl = dependency('opengl')
|
opengl = dependency('gl')
|
||||||
wxwidgets = dependency('wxwidgets')
|
wxwidgets = dependency('wxwidgets')
|
||||||
|
|
||||||
pcem_dependencies = [sdl2, openal, opengl, wxwidgets]
|
pcem_dependencies = [sdl2, openal, opengl, wxwidgets]
|
||||||
@@ -23,4 +24,6 @@ endif
|
|||||||
add_project_arguments('-fcommon', language: ['c', 'cpp'])
|
add_project_arguments('-fcommon', language: ['c', 'cpp'])
|
||||||
|
|
||||||
subdir('docs')
|
subdir('docs')
|
||||||
subdir('src')
|
subdir('src')
|
||||||
|
|
||||||
|
install_subdir('nvr', install_dir: get_option('datadir') / 'nvr/default', strip_directory : true)
|
@@ -5,3 +5,13 @@ option('use-alsa', type: 'boolean', value: false, description: 'Build PCem with
|
|||||||
option('allow-experimental-code', type: 'boolean', value: false, description: 'Build PCem with experimental code.')
|
option('allow-experimental-code', type: 'boolean', value: false, description: 'Build PCem with experimental code.')
|
||||||
option('use-experimental-pdc', type: 'boolean', value: false, description: 'Build Professional Graphics Controller Support. Need to allow experimental code for this option to work.')
|
option('use-experimental-pdc', type: 'boolean', value: false, description: 'Build Professional Graphics Controller Support. Need to allow experimental code for this option to work.')
|
||||||
option('use-experimental-printer', type: 'boolean', value: false, description: 'Build Printer Support. Need to allow experimental code for this option to work.')
|
option('use-experimental-printer', type: 'boolean', value: false, description: 'Build Printer Support. Need to allow experimental code for this option to work.')
|
||||||
|
|
||||||
|
option('slirp-debug', type: 'boolean', value: false, description: 'Build PCem with SLIRP_DEBUG debug output. Needs to be a debug build to do anything.')
|
||||||
|
option('recompiler-debug', type: 'boolean', value: false, description: 'Build PCem with RECOMPILER_DEBUG debug output. Needs to be a debug build to do anything.')
|
||||||
|
option('ne2000-debug', type: 'boolean', value: false, description: 'Build PCem with NE2000_DEBUG debug output. Needs to be a debug build to do anything.')
|
||||||
|
option('emu8k-debug-registers', type: 'boolean', value: false, description: 'Build PCem with EMU8K_DEBUG_REGISTERS debug output. Needs to be a debug build to do anything.')
|
||||||
|
option('sb-dsp-record-debug', type: 'boolean', value: false, description: 'Build PCem with SB_DSP_RECORD_DEBUG debug output. Needs to be a debug build to do anything.')
|
||||||
|
option('mach64-debug', type: 'boolean', value: false, description: 'Build PCem with MACH64_DEBUG debug output. Needs to be a debug build to do anything.')
|
||||||
|
option('plugin-debug', type: 'boolean', value: false, description: 'Build PCem with PLUGIN_DEBUG debug output. Needs to be a debug build to do anything.')
|
||||||
|
option('extra-debug', type: 'boolean', value: false, description: 'Build PCem with DEBUG_EXTRA debug output. Needs to be a debug build to do anything.')
|
||||||
|
option('printer-debug', type: 'boolean', value: false, description: 'Build PCem with PRINTER_DEBUG debug output. Needs to be a debug build to do anything.')
|
||||||
|
@@ -1,33 +1,31 @@
|
|||||||
#if(CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo")
|
if get_option('buildtype').startswith('debug')
|
||||||
# set(PCEM_DEFINES ${PCEM_DEFINES} DEBUG)
|
if get_option('slirp-debug')
|
||||||
#
|
add_project_arguments('-DSLIRP_DEBUG', language: ['c', 'cpp'])
|
||||||
# if(PCEM_SLIRP_DEBUG)
|
endif
|
||||||
# set(PCEM_DEFINES ${PCEM_DEFINES} SLIRP_DEBUG)
|
if get_option('recompiler-debug')
|
||||||
# endif()
|
add_project_arguments('-DRECOMPILER_DEBUG', language: ['c', 'cpp'])
|
||||||
# if(PCEM_RECOMPILER_DEBUG)
|
endif
|
||||||
# set(PCEM_DEFINES ${PCEM_DEFINES} RECOMPILER_DEBUG)
|
if get_option('ne2000-debug')
|
||||||
# endif()
|
add_project_arguments('-DNE2000_DEBUG', language: ['c', 'cpp'])
|
||||||
# if(PCEM_NE2000_DEBUG)
|
endif
|
||||||
# set(PCEM_DEFINES ${PCEM_DEFINES} NE2000_DEBUG)
|
if get_option('emu8k-debug-registers')
|
||||||
# endif()
|
add_project_arguments('-DEMU8K_DEBUG_REGISTERS', language: ['c', 'cpp'])
|
||||||
# if(PCEM_EMU8K_DEBUG_REGISTERS)
|
endif
|
||||||
# set(PCEM_DEFINES ${PCEM_DEFINES} EMU8K_DEBUG_REGISTERS)
|
if get_option('sb-dsp-record-debug')
|
||||||
# endif()
|
add_project_arguments('-DSB_DSP_RECORD_DEBUG', language: ['c', 'cpp'])
|
||||||
# if(PCEM_SB_DSP_RECORD_DEBUG)
|
endif
|
||||||
# set(PCEM_DEFINES ${PCEM_DEFINES} SB_DSP_RECORD_DEBUG)
|
if get_option('mach64-debug')
|
||||||
# endif()
|
add_project_arguments('-DMACH64_DEBUG', language: ['c', 'cpp'])
|
||||||
# if(PCEM_MACH64_DEBUG)
|
endif
|
||||||
# set(PCEM_DEFINES ${PCEM_DEFINES} MACH64_DEBUG)
|
if get_option('plugin-debug')
|
||||||
# endif()
|
add_project_arguments('-DPLUGIN_DEBUG', language: ['c', 'cpp'])
|
||||||
# if(PCEM_NE2000_DEBUG)
|
endif
|
||||||
# set(PCEM_DEFINES ${PCEM_DEFINES} NE2000_DEBUG)
|
if get_option('extra-debug')
|
||||||
# endif()
|
add_project_arguments('-DDEBUG_EXTRA', language: ['c', 'cpp'])
|
||||||
# if(PCEM_DEBUG_EXTRA)
|
endif
|
||||||
# set(PCEM_DEFINES ${PCEM_DEFINES} DEBUG_EXTRA)
|
if get_option('printer-debug')
|
||||||
# endif()
|
add_project_arguments('-DPRINTER_DEBUG', language: ['c', 'cpp'])
|
||||||
# if(PCEM_PRINTER_DEBUG)
|
endif
|
||||||
# set(PCEM_DEFINES ${PCEM_DEFINES} PRINTER_DEBUG)
|
else
|
||||||
# endif()
|
add_project_arguments('-DRELEASE_BUILD', language: ['c', 'cpp'])
|
||||||
#else()
|
endif
|
||||||
# set(PCEM_DEFINES ${PCEM_DEFINES} RELEASE_BUILD)
|
|
||||||
#endif()
|
|
@@ -42,4 +42,4 @@ pcem_src += files(
|
|||||||
|
|
||||||
subdir('plugin-api')
|
subdir('plugin-api')
|
||||||
|
|
||||||
executable('pcem', pcem_src, dependencies: pcem_dependencies, include_directories: pcem_include_dirs)
|
executable('pcem', pcem_src, dependencies: pcem_dependencies, link_with: pcem_project_libraries, include_directories: pcem_include_dirs, install: true, win_subsystem: 'windows')
|
||||||
|
@@ -26,7 +26,8 @@ pcem_pluginapi_src = files(
|
|||||||
)
|
)
|
||||||
|
|
||||||
if get_option('use-plugin-engine')
|
if get_option('use-plugin-engine')
|
||||||
# Create Library Here and link to main EXE
|
pcem_plugin_api = shared_library('pcem', sources: pcem_pluginapi_src, dependencies: pcem_dependencies, include_directories: pcem_include_dirs, install: true)
|
||||||
|
pcem_project_libraries += pcem_plugin_api
|
||||||
else
|
else
|
||||||
pcem_src += pcem_pluginapi_src
|
pcem_src += pcem_pluginapi_src
|
||||||
endif
|
endif
|
@@ -40,7 +40,11 @@ void load_plugins()
|
|||||||
tinydir_file file;
|
tinydir_file file;
|
||||||
tinydir_readfile(&dir, &file);
|
tinydir_readfile(&dir, &file);
|
||||||
|
|
||||||
if (!strcmp(file.extension, "pcem"))
|
#if defined(linux)
|
||||||
|
if (!strcmp(file.extension, "so"))
|
||||||
|
#elif defined(WIN32)
|
||||||
|
if (!strcmp(file.extension, "dll"))
|
||||||
|
#endif
|
||||||
{
|
{
|
||||||
pclog("plugin loading: %s\n", file.name);
|
pclog("plugin loading: %s\n", file.name);
|
||||||
void (* initialize_loaded_plugin)();
|
void (* initialize_loaded_plugin)();
|
||||||
|
Reference in New Issue
Block a user