Fix DLL building
This commit is contained in:
@@ -7,10 +7,12 @@ set(CMAKE_CXX_STANDARD_REQUIRED true)
|
||||
|
||||
option(CTRFF_DESKTOP OFF "Buid for Desktop Platform")
|
||||
option(CTRFF_3DS OFF "Build lib for 3ds")
|
||||
option(CTRFF_SHARED OFF)
|
||||
|
||||
if(${CTRFF_3DS})
|
||||
set(CTRFF_DESKTOP OFF CACHE BOOL)
|
||||
set(CTRFF_BUILD_GUI OFF CACHE BOOL)
|
||||
set(CTRFF_SHARED OFF CACHE BOOL)
|
||||
if(NOT DEFINED CMAKE_TOOLCHAIN_FILE)
|
||||
if(DEFINED ENV{DEVKITPRO})
|
||||
set(CMAKE_TOOLCHAIN_FILE "$ENV{DEVKITPRO}/cmake/3DS.cmake" CACHE PATH "toolchain file")
|
||||
@@ -21,7 +23,7 @@ if(${CTRFF_3DS})
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wno-psabi -O3")
|
||||
endif()
|
||||
|
||||
add_library(ctrff STATIC
|
||||
set(CTRFF_SOURCE
|
||||
source/3dsx.cpp
|
||||
source/bclim.cpp
|
||||
source/bcstm.cpp
|
||||
@@ -32,6 +34,14 @@ add_library(ctrff STATIC
|
||||
source/pica.cpp
|
||||
source/smdh.cpp
|
||||
)
|
||||
|
||||
if(${CTRFF_SHARED})
|
||||
add_library(ctrff SHARED ${CTRFF_SOURCE})
|
||||
target_compile_definitions(ctrff PUBLIC CTRFF_SHARED)
|
||||
target_compile_definitions(ctrff PRIVATE CTRFF_BUILD_SHARED)
|
||||
else()
|
||||
add_library(ctrff STATIC ${CTRFF_SOURCE})
|
||||
endif()
|
||||
target_include_directories(ctrff PUBLIC include)
|
||||
|
||||
if(${CTRFF_DESKTOP})
|
||||
|
||||
@@ -92,7 +92,7 @@ class CTRFF_API BCSTM {
|
||||
ctrff::u32 Size;
|
||||
};
|
||||
|
||||
struct StreamInfo {
|
||||
struct CTRFF_API StreamInfo {
|
||||
StreamInfo();
|
||||
ctrff::u8 Encoding;
|
||||
ctrff::u8 Loop;
|
||||
|
||||
@@ -23,7 +23,8 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
*/
|
||||
/*
|
||||
|
||||
#ifdef CTRFF_SHARED
|
||||
#ifdef _WIN32 // Windows (MSVC Tested)
|
||||
#ifdef CTRFF_BUILD_SHARED
|
||||
#define CTRFF_API __declspec(dllexport)
|
||||
@@ -45,9 +46,12 @@ SOFTWARE.
|
||||
#elif defined(__3DS__) // 3ds Specific
|
||||
// Only Static supported
|
||||
#define CTRFF_API
|
||||
#else*/
|
||||
#else
|
||||
#define CTRFF_API
|
||||
//#endif
|
||||
#endif
|
||||
#else
|
||||
#define CTRFF_API
|
||||
#endif
|
||||
|
||||
#include <cstddef>
|
||||
#include <format>
|
||||
|
||||
@@ -150,7 +150,7 @@ CTRFF_API std::string ctrff::U16toU8(ctrff::u16 *in, size_t max) {
|
||||
} else if (c < 0x800) {
|
||||
result.push_back(static_cast<char>(0xC0 | (c >> 6)));
|
||||
result.push_back(static_cast<char>(0x80 | (c & 0x3F)));
|
||||
} else if (c < 0x10000) {
|
||||
} else if (c < 0xffff) {
|
||||
result.push_back(static_cast<char>(0xE0 | (c >> 12)));
|
||||
result.push_back(static_cast<char>(0x80 | ((c >> 6) & 0x3F)));
|
||||
result.push_back(static_cast<char>(0x80 | (c & 0x3F)));
|
||||
|
||||
Reference in New Issue
Block a user