mirror of https://github.com/mgba-emu/mgba.git
All: Improve export headers (fixes #1738)
This commit is contained in:
parent
dd6ba856ed
commit
ff4406fab0
1
CHANGES
1
CHANGES
|
@ -25,6 +25,7 @@ Emulation fixes:
|
||||||
- GBA Video: Fix mosaic objects drawing past the end (fixes mgba.io/i/1702)
|
- GBA Video: Fix mosaic objects drawing past the end (fixes mgba.io/i/1702)
|
||||||
- GBA Video: Fix disabling OBJWIN in GL renderer (fixes mgba.io/i/1759)
|
- GBA Video: Fix disabling OBJWIN in GL renderer (fixes mgba.io/i/1759)
|
||||||
Other fixes:
|
Other fixes:
|
||||||
|
- All: Improve export headers (fixes mgba.io/i/1738)
|
||||||
- CMake: Always use devkitPro toolchain when applicable (fixes mgba.io/i/1755)
|
- CMake: Always use devkitPro toolchain when applicable (fixes mgba.io/i/1755)
|
||||||
- Core: Ensure ELF regions can be written before trying
|
- Core: Ensure ELF regions can be written before trying
|
||||||
- Core: Fix ELF loading regression (fixes mgba.io/i/1669)
|
- Core: Fix ELF loading regression (fixes mgba.io/i/1669)
|
||||||
|
|
|
@ -169,9 +169,9 @@ endif()
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(WIN32_VERSION "${LIB_VERSION_MAJOR},${LIB_VERSION_MINOR},${LIB_VERSION_PATCH}")
|
set(WIN32_VERSION "${LIB_VERSION_MAJOR},${LIB_VERSION_MINOR},${LIB_VERSION_PATCH}")
|
||||||
add_definitions(-D_WIN32_WINNT=0x0600)
|
add_definitions(-D_WIN32_WINNT=0x0600)
|
||||||
|
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
add_definitions(-DNOMINMAX -DWIN32_LEAN_AND_MEAN)
|
add_definitions(-DNOMINMAX -DWIN32_LEAN_AND_MEAN)
|
||||||
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS TRUE)
|
|
||||||
add_definitions(-D_UNICODE -DUNICODE)
|
add_definitions(-D_UNICODE -DUNICODE)
|
||||||
else()
|
else()
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -municode")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -municode")
|
||||||
|
@ -820,6 +820,7 @@ if(NOT SKIP_LIBRARY)
|
||||||
|
|
||||||
if(BUILD_SHARED)
|
if(BUILD_SHARED)
|
||||||
add_library(${BINARY_NAME} SHARED ${SRC} ${VFS_SRC})
|
add_library(${BINARY_NAME} SHARED ${SRC} ${VFS_SRC})
|
||||||
|
set(EXPORT_DEFINES MGBA_DLL)
|
||||||
if(BUILD_STATIC)
|
if(BUILD_STATIC)
|
||||||
add_library(${BINARY_NAME}-static STATIC ${SRC})
|
add_library(${BINARY_NAME}-static STATIC ${SRC})
|
||||||
target_include_directories(${BINARY_NAME}-static BEFORE PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_BINARY_DIR}/include)
|
target_include_directories(${BINARY_NAME}-static BEFORE PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_BINARY_DIR}/include)
|
||||||
|
@ -833,12 +834,10 @@ if(NOT SKIP_LIBRARY)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
target_include_directories(${BINARY_NAME} BEFORE PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_BINARY_DIR}/include)
|
target_include_directories(${BINARY_NAME} BEFORE PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include ${CMAKE_CURRENT_BINARY_DIR}/include)
|
||||||
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}")
|
set_target_properties(${BINARY_NAME} PROPERTIES VERSION ${LIB_VERSION_STRING} SOVERSION ${LIB_VERSION_ABI} COMPILE_DEFINITIONS "${OS_DEFINES};${FEATURE_DEFINES};${FUNCTION_DEFINES};${EXPORT_DEFINES}" COMPILE_OPTIONS "${FEATURE_FLAGS}")
|
||||||
add_dependencies(${BINARY_NAME} version-info)
|
add_dependencies(${BINARY_NAME} version-info)
|
||||||
|
|
||||||
include(GenerateExportHeader)
|
|
||||||
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/include/mgba-util)
|
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})
|
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})
|
install(TARGETS ${BINARY_NAME} LIBRARY DESTINATION ${LIBDIR} COMPONENT lib${BINARY_NAME} NAMELINK_SKIP ARCHIVE DESTINATION ${LIBDIR} RUNTIME DESTINATION ${LIBDIR} COMPONENT lib${BINARY_NAME})
|
||||||
|
|
|
@ -65,12 +65,7 @@ typedef intptr_t ssize_t;
|
||||||
#include <sys/syslimits.h>
|
#include <sys/syslimits.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifndef MGBA_STANDALONE
|
|
||||||
#include <mgba-util/dllexports.h>
|
#include <mgba-util/dllexports.h>
|
||||||
#else
|
|
||||||
#define MGBA_EXPORT
|
|
||||||
#define MGBA_NO_EXPORT
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef SSIZE_MAX
|
#ifndef SSIZE_MAX
|
||||||
#define SSIZE_MAX ((ssize_t) (SIZE_MAX >> 1))
|
#define SSIZE_MAX ((ssize_t) (SIZE_MAX >> 1))
|
||||||
|
|
|
@ -0,0 +1,19 @@
|
||||||
|
/* Copyright (c) 2013-2020 Jeffrey Pfau
|
||||||
|
*
|
||||||
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||||
|
#ifndef MGBA_EXPORT_H
|
||||||
|
#define MGBA_EXPORT_H
|
||||||
|
|
||||||
|
#if defined(BUILD_STATIC) || !defined(_MSC_VER) || defined(MGBA_STANDALONE)
|
||||||
|
#define MGBA_EXPORT
|
||||||
|
#else
|
||||||
|
#ifdef MGBA_DLL
|
||||||
|
#define MGBA_EXPORT __declspec(dllexport)
|
||||||
|
#else
|
||||||
|
#define MGBA_EXPORT __declspec(dllimport)
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#endif
|
Loading…
Reference in New Issue