Start fixing up DC building
This commit is contained in:
parent
9ba82d4bfc
commit
2f1bb5523b
|
@ -5,8 +5,10 @@ set(CMAKE_C_STANDARD 99)
|
||||||
|
|
||||||
include_directories(include)
|
include_directories(include)
|
||||||
|
|
||||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32")
|
if(NOT PLATFORM_DREAMCAST)
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32")
|
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -m32")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -m32")
|
||||||
|
endif()
|
||||||
|
|
||||||
set(
|
set(
|
||||||
SOURCES
|
SOURCES
|
||||||
|
@ -31,15 +33,21 @@ set(
|
||||||
)
|
)
|
||||||
|
|
||||||
if(PLATFORM_DREAMCAST)
|
if(PLATFORM_DREAMCAST)
|
||||||
set(SOURCES ${SOURCES} GL/platforms/sh4.c)
|
set(SOURCES ${SOURCES} GL/platforms/sh4.c)
|
||||||
else()
|
else()
|
||||||
find_package(SDL2 REQUIRED)
|
find_package(SDL2 REQUIRED)
|
||||||
include_directories(${SDL2_INCLUDE_DIRS})
|
include_directories(${SDL2_INCLUDE_DIRS})
|
||||||
link_libraries(${SDL2_LIBRARIES})
|
link_libraries(${SDL2_LIBRARIES})
|
||||||
set(SOURCES ${SOURCES} GL/platforms/software.c GL/platforms/software/edge_equation.c GL/platforms/software/parameter_equation.c)
|
set(
|
||||||
|
SOURCES
|
||||||
|
${SOURCES}
|
||||||
|
GL/platforms/software.c
|
||||||
|
GL/platforms/software/edge_equation.c
|
||||||
|
GL/platforms/software/parameter_equation.c
|
||||||
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_library(GLdc ${SOURCES})
|
add_library(GLdc STATIC ${SOURCES})
|
||||||
link_libraries(m)
|
link_libraries(m)
|
||||||
|
|
||||||
include_directories(include)
|
include_directories(include)
|
||||||
|
|
|
@ -63,3 +63,10 @@ void SceneListFinish() {
|
||||||
void SceneFinish() {
|
void SceneFinish() {
|
||||||
pvr_scene_finish();
|
pvr_scene_finish();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const VideoMode* GetVideoMode() {
|
||||||
|
static VideoMode mode;
|
||||||
|
mode.width = vid_mode->width;
|
||||||
|
mode.height = vid_mode->height;
|
||||||
|
return &mode;
|
||||||
|
}
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
#include <kos.h>
|
#include <kos.h>
|
||||||
|
|
||||||
#include <GL/gl.h>
|
#include <GL/gl.h>
|
||||||
|
#include <GL/glkos.h>
|
||||||
|
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
|
|
@ -8,9 +8,11 @@
|
||||||
#include "GL/glext.h"
|
#include "GL/glext.h"
|
||||||
#include "GL/glkos.h"
|
#include "GL/glkos.h"
|
||||||
|
|
||||||
extern uint8_t romdisk[];
|
#ifdef __DREAMCAST__
|
||||||
|
#include <kos.h>
|
||||||
|
extern uint8 romdisk[];
|
||||||
KOS_INIT_ROMDISK(romdisk);
|
KOS_INIT_ROMDISK(romdisk);
|
||||||
|
#endif
|
||||||
|
|
||||||
/* Image type - contains height, width, and data */
|
/* Image type - contains height, width, and data */
|
||||||
typedef struct // Create A Structure
|
typedef struct // Create A Structure
|
||||||
|
|
59
toolchains/Dreamcast.cmake
Normal file
59
toolchains/Dreamcast.cmake
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
SET(CMAKE_SYSTEM_NAME Generic)
|
||||||
|
|
||||||
|
SET(PLATFORM_DREAMCAST TRUE)
|
||||||
|
|
||||||
|
SET(CMAKE_SYSTEM_VERSION 1)
|
||||||
|
|
||||||
|
set(CMAKE_CROSSCOMPILING TRUE)
|
||||||
|
|
||||||
|
set(CMAKE_C_COMPILER $ENV{KOS_CC_BASE}/bin/sh-elf-gcc)
|
||||||
|
set(CMAKE_CXX_COMPILER $ENV{KOS_CC_BASE}/bin/sh-elf-g++)
|
||||||
|
|
||||||
|
add_compile_options(-ml -m4-single-only -ffunction-sections -fdata-sections)
|
||||||
|
|
||||||
|
set(CMAKE_EXE_LINKER_FLAGS " -ml -m4-single-only -Wl,-Ttext=0x8c010000 -Wl,--gc-sections -T$ENV{KOS_BASE}/utils/ldscripts/shlelf.xc -nodefaultlibs" CACHE INTERNAL "" FORCE)
|
||||||
|
|
||||||
|
set(CMAKE_FIND_LIBRARY_SUFFIXES ".a")
|
||||||
|
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||||
|
|
||||||
|
set(CMAKE_SYSTEM_INCLUDE_PATH "${CMAKE_SYSTEM_INCLUDE_PATH} $ENV{KOS_BASE}/include $ENV{KOS_BASE}/kernel/arch/dreamcast/include $ENV{KOS_BASE}/addons/include $ENV{KOS_BASE}/../kos-ports/include")
|
||||||
|
|
||||||
|
INCLUDE_DIRECTORIES(
|
||||||
|
$ENV{KOS_BASE}/include
|
||||||
|
$ENV{KOS_BASE}/kernel/arch/dreamcast/include
|
||||||
|
$ENV{KOS_BASE}/addons/include
|
||||||
|
$ENV{KOS_BASE}/../kos-ports/include
|
||||||
|
)
|
||||||
|
|
||||||
|
LINK_DIRECTORIES(
|
||||||
|
$ENV{KOS_BASE}/addons/lib/dreamcast
|
||||||
|
$ENV{KOS_PORTS}/lib
|
||||||
|
)
|
||||||
|
|
||||||
|
IF(${CMAKE_BUILD_TYPE} MATCHES Debug)
|
||||||
|
LINK_DIRECTORIES($ENV{KOS_BASE}/lib/dreamcast/debug)
|
||||||
|
ELSE()
|
||||||
|
LINK_DIRECTORIES($ENV{KOS_BASE}/lib/dreamcast)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
|
||||||
|
add_link_options(-L$ENV{KOS_BASE}/lib/dreamcast LINKER:--start-group -lstdc++ -lkallisti -lc -lgcc -Wl,--end-group)
|
||||||
|
link_libraries(stdc++ kallisti c gcc m)
|
||||||
|
|
||||||
|
SET(CMAKE_EXECUTABLE_SUFFIX ".elf")
|
||||||
|
SET(CMAKE_EXECUTABLE_SUFFIX_CXX ".elf")
|
||||||
|
|
||||||
|
ADD_DEFINITIONS(
|
||||||
|
-D__DREAMCAST__
|
||||||
|
-DDREAMCAST
|
||||||
|
-D_arch_dreamcast
|
||||||
|
-D__arch_dreamcast
|
||||||
|
-D_arch_sub_pristine
|
||||||
|
)
|
||||||
|
|
||||||
|
if (NOT CMAKE_BUILD_TYPE MATCHES Debug)
|
||||||
|
ADD_DEFINITIONS(-DNDEBUG)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
SET(CMAKE_ASM_FLAGS "")
|
||||||
|
SET(CMAKE_ASM_FLAGS_RELEASE "")
|
Loading…
Reference in New Issue
Block a user