diff --git a/CMakeLists.txt b/CMakeLists.txt index 3bb4585d8..6ee4c2a70 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -855,6 +855,10 @@ if(NOT SKIP_LIBRARY) set_target_properties(${BINARY_NAME} PROPERTIES VERSION ${LIB_VERSION_STRING} SOVERSION ${LIB_VERSION_ABI} COMPILE_DEFINITIONS "${OS_DEFINES};${FEATURE_DEFINES};${FUNCTION_DEFINES}" COMPILE_OPTIONS "${FEATURE_FLAGS}") add_dependencies(${BINARY_NAME} version-info) + include(GenerateExportHeader) + file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/mgba-util) + generate_export_header(${BINARY_NAME} BASE_NAME ${BINARY_NAME} STATIC_DEFINE BUILD_STATIC EXPORT_FILE_NAME ${CMAKE_CURRENT_BINARY_DIR}/include/mgba-util/dllexports.h) + target_link_libraries(${BINARY_NAME} ${DEBUGGER_LIB} ${DEPENDENCY_LIB} ${OS_LIB}) install(TARGETS ${BINARY_NAME} LIBRARY DESTINATION ${LIBDIR} COMPONENT lib${BINARY_NAME} NAMELINK_SKIP ARCHIVE DESTINATION ${LIBDIR} RUNTIME DESTINATION ${LIBDIR} COMPONENT lib${BINARY_NAME}) if(UNIX AND NOT APPLE AND NOT HAIKU) @@ -906,7 +910,7 @@ if(BUILD_LIBRETRO) file(GLOB RETRO_SRC ${CMAKE_CURRENT_SOURCE_DIR}/src/platform/libretro/*.c) add_library(${BINARY_NAME}_libretro SHARED ${CORE_SRC} ${RETRO_SRC}) add_dependencies(${BINARY_NAME}_libretro version-info) - set_target_properties(${BINARY_NAME}_libretro PROPERTIES PREFIX "" COMPILE_DEFINITIONS "__LIBRETRO__;COLOR_16_BIT;COLOR_5_6_5;DISABLE_THREADING;${OS_DEFINES};${FUNCTION_DEFINES};MINIMAL_CORE=2") + set_target_properties(${BINARY_NAME}_libretro PROPERTIES PREFIX "" COMPILE_DEFINITIONS "__LIBRETRO__;COLOR_16_BIT;COLOR_5_6_5;DISABLE_THREADING;MGBA_STANDALONE;${OS_DEFINES};${FUNCTION_DEFINES};MINIMAL_CORE=2") target_link_libraries(${BINARY_NAME}_libretro ${OS_LIB}) if(MSVC) install(TARGETS ${BINARY_NAME}_libretro RUNTIME DESTINATION ${LIBRETRO_LIBDIR} COMPONENT ${BINARY_NAME}_libretro) @@ -925,7 +929,7 @@ if(BUILD_OPENEMU) BUNDLE TRUE BUNDLE_EXTENSION oecoreplugin OUTPUT_NAME ${PROJECT_NAME} - COMPILE_DEFINITIONS "DISABLE_THREADING;${OS_DEFINES};${FUNCTION_DEFINES};MINIMAL_CORE=1") + COMPILE_DEFINITIONS "DISABLE_THREADING;MGBA_STANDALONE;${OS_DEFINES};${FUNCTION_DEFINES};MINIMAL_CORE=1") target_link_libraries(${BINARY_NAME}-openemu ${OS_LIB} ${FOUNDATION} ${OPENEMUBASE}) install(TARGETS ${BINARY_NAME}-openemu LIBRARY DESTINATION ${OE_LIBDIR} COMPONENT ${BINARY_NAME}.oecoreplugin NAMELINK_SKIP) endif() @@ -995,11 +999,8 @@ if(BUILD_EXAMPLE) endif() endif() -include(GenerateExportHeader) file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/mgba) -file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/mgba-util) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/src/core/flags.h.in ${CMAKE_CURRENT_BINARY_DIR}/include/mgba/flags.h) -generate_export_header(${BINARY_NAME} BASE_NAME ${BINARY_NAME} STATIC_DEFINE BUILD_STATIC EXPORT_FILE_NAME ${CMAKE_CURRENT_BINARY_DIR}/include/mgba-util/dllexports.h) install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/mgba DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT ${BINARY_NAME}-dev FILES_MATCHING PATTERN "*.h") install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/mgba-util DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT ${BINARY_NAME}-dev FILES_MATCHING PATTERN "*.h") install(FILES ${CMAKE_CURRENT_BINARY_DIR}/include/mgba/flags.h DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/mgba COMPONENT ${BINARY_NAME}-dev) diff --git a/include/mgba-util/common.h b/include/mgba-util/common.h index e268dbad5..1b31bfccb 100644 --- a/include/mgba-util/common.h +++ b/include/mgba-util/common.h @@ -65,6 +65,13 @@ typedef intptr_t ssize_t; #include #endif +#ifndef MGBA_STANDALONE +#include +#else +#define MGBA_EXPORT +#define MGBA_NO_EXPORT +#endif + #ifndef SSIZE_MAX #define SSIZE_MAX ((ssize_t) (SIZE_MAX >> 1)) #endif diff --git a/include/mgba/core/log.h b/include/mgba/core/log.h index 71614cf2c..e2ac55e4b 100644 --- a/include/mgba/core/log.h +++ b/include/mgba/core/log.h @@ -7,7 +7,6 @@ #define M_LOG_H #include -#include CXX_GUARD_START diff --git a/include/mgba/core/version.h b/include/mgba/core/version.h index b261ab6d3..7749723c1 100644 --- a/include/mgba/core/version.h +++ b/include/mgba/core/version.h @@ -10,7 +10,11 @@ extern "C" { #endif +#ifdef MGBA_STANDALONE +#define MGBA_EXPORT +#else #include +#endif extern MGBA_EXPORT const char* const gitCommit; extern MGBA_EXPORT const char* const gitCommitShort; diff --git a/include/mgba/gba/interface.h b/include/mgba/gba/interface.h index 730d651e2..33c7a8e88 100644 --- a/include/mgba/gba/interface.h +++ b/include/mgba/gba/interface.h @@ -7,7 +7,6 @@ #define GBA_INTERFACE_H #include -#include CXX_GUARD_START diff --git a/include/mgba/internal/gb/io.h b/include/mgba/internal/gb/io.h index b28a7cc01..1df09da2f 100644 --- a/include/mgba/internal/gb/io.h +++ b/include/mgba/internal/gb/io.h @@ -7,7 +7,6 @@ #define GB_IO_H #include -#include CXX_GUARD_START diff --git a/include/mgba/internal/gba/input.h b/include/mgba/internal/gba/input.h index 179e935f4..cdfde6e1f 100644 --- a/include/mgba/internal/gba/input.h +++ b/include/mgba/internal/gba/input.h @@ -7,7 +7,6 @@ #define GBA_INPUT_H #include -#include CXX_GUARD_START diff --git a/include/mgba/internal/gba/video.h b/include/mgba/internal/gba/video.h index 4fe4d111e..77ff3cf0e 100644 --- a/include/mgba/internal/gba/video.h +++ b/include/mgba/internal/gba/video.h @@ -7,7 +7,6 @@ #define GBA_VIDEO_H #include -#include CXX_GUARD_START