Skip to content

Raylibadapt #68

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 69 commits into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
69 commits
Select commit Hold shift + click to select a range
1793580
feat: adapter raylib mac os
ItagibaALIX Jul 16, 2021
d7e10ec
feat: adapter raylib linux
ItagibaALIX Jul 16, 2021
ff3aec4
fix: package
ItagibaALIX Jul 16, 2021
019080e
fix:
ItagibaALIX Jul 16, 2021
4ac1af2
fix: package name
ItagibaALIX Jul 16, 2021
700b722
fix: add variable
ItagibaALIX Jul 16, 2021
8023b52
fix: upadte libs
ItagibaALIX Jul 16, 2021
df79911
fix: upadte libs
ItagibaALIX Jul 27, 2021
30f840b
fix: delete rt
ItagibaALIX Jul 27, 2021
dac2c7f
fix: not need rename
ItagibaALIX Jul 27, 2021
1c2c499
fix: target include lib added to linux part
ItagibaALIX Jul 27, 2021
15076d3
fix: delete lib x11
ItagibaALIX Jul 27, 2021
f245f33
fix: delete lraylib
ItagibaALIX Jul 27, 2021
7acf06b
fix: USE_EXTERNAL_GLFW=TRUE
ItagibaALIX Jul 27, 2021
dfa5d2b
fix: -lglfw
ItagibaALIX Jul 27, 2021
8111401
fix: -lraylib
ItagibaALIX Jul 27, 2021
0623157
fix: delete -lraylib
ItagibaALIX Jul 27, 2021
fc8b6aa
fix: RAYLIB_INCLUDE_DIR
ItagibaALIX Jul 27, 2021
c612b20
fix: reset last commit
ItagibaALIX Jul 27, 2021
7899387
fix: normal glfw
ItagibaALIX Jul 27, 2021
9e04a69
fix: syntax error
ItagibaALIX Jul 27, 2021
d8ac578
fix: normal glfw
ItagibaALIX Jul 27, 2021
fb3ec4c
fix: normal glfw
ItagibaALIX Jul 27, 2021
f565918
fix: new include glfw
ItagibaALIX Aug 9, 2021
5b0a875
fix: new include glfw
ItagibaALIX Aug 9, 2021
aabff52
fix: new include glfw
ItagibaALIX Aug 9, 2021
9eda1aa
fix: new include glfw
ItagibaALIX Aug 9, 2021
c1ff178
fix: try add raylib config
ItagibaALIX Aug 9, 2021
7999183
fix: try add raylib config
ItagibaALIX Aug 9, 2021
01554f2
fix: try add raylib config
ItagibaALIX Aug 9, 2021
af85ae9
fix: try add raylib config
ItagibaALIX Aug 9, 2021
a02cb32
fix: try add raylib config
ItagibaALIX Aug 9, 2021
51e3e05
fix: try add raylib config
ItagibaALIX Aug 9, 2021
4d808af
fix: try add raylib config
ItagibaALIX Aug 9, 2021
06d5290
fix: try add raylib config
ItagibaALIX Aug 9, 2021
8cd534d
fix: try add raylib config
ItagibaALIX Aug 9, 2021
987005d
fix: try add raylib config
ItagibaALIX Aug 9, 2021
99a1b0f
fix: try add raylib config
ItagibaALIX Aug 9, 2021
290c118
fix: try add raylib config
ItagibaALIX Aug 9, 2021
49ef215
fix: try add raylib config
ItagibaALIX Aug 9, 2021
42c3ac4
fix: try add raylib config
ItagibaALIX Aug 9, 2021
52e1ed8
fix: try add raylib config
ItagibaALIX Aug 9, 2021
f1340bf
fix: try add raylib config
ItagibaALIX Aug 9, 2021
0817c38
fix: try add raylib config
ItagibaALIX Aug 9, 2021
283c643
fix: update execCLI
ItagibaALIX Aug 10, 2021
6efb34a
fix: update execCLI
ItagibaALIX Aug 10, 2021
389c07a
fix: update execCLI
ItagibaALIX Aug 10, 2021
8f9a95a
fix: update execCLI
ItagibaALIX Aug 10, 2021
496bf3e
fix: update execCLI
ItagibaALIX Aug 10, 2021
ace2946
fix: update execCLI
ItagibaALIX Aug 10, 2021
4ec763b
fix: update execCLI
ItagibaALIX Aug 16, 2021
13ec5e8
fix: update execCLI
ItagibaALIX Aug 16, 2021
57890a7
fix: update execCLI
ItagibaALIX Aug 16, 2021
daaa7d5
fix: cmake config updated + new flag to compile the lib
ItagibaALIX Aug 16, 2021
354051b
fix: whithout sudp
ItagibaALIX Aug 16, 2021
2dc7e98
fix: someway to use sudo in exectcli
ItagibaALIX Aug 16, 2021
56cc368
fix: someway to use sudo in exectcli
ItagibaALIX Aug 16, 2021
a6c6c6a
fix: someway to use sudo in exectcli
ItagibaALIX Aug 16, 2021
e016d86
fix: someway to use sudo in exectcli
ItagibaALIX Aug 16, 2021
9132153
fix: someway to use sudo in exectcli
ItagibaALIX Aug 16, 2021
1dce86e
fix: someway to use sudo in exectcli
ItagibaALIX Aug 16, 2021
16bdcf2
fix: someway to use sudo in exectcli
ItagibaALIX Aug 16, 2021
1d23da1
fix: someway to use sudo in exectcli
ItagibaALIX Aug 16, 2021
40cb822
fix: someway to use sudo in exectcli
ItagibaALIX Aug 17, 2021
93fcbfd
fix: someway to use sudo in exectcli
ItagibaALIX Aug 17, 2021
074911c
fix: someway to use sudo in exectcli
ItagibaALIX Aug 17, 2021
e3a00fe
fix: someway to use sudo in exectcli
ItagibaALIX Aug 17, 2021
d212f19
feat: add compil with shared lib
ItagibaALIX Aug 31, 2021
6c9b9de
feat: create shared lib
ItagibaALIX Aug 31, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions adapter/adapter.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ import (
"errors"
"github.com/c3pm-labs/c3pm/adapter/defaultadapter"
"github.com/c3pm-labs/c3pm/adapter/irrlichtadapter"
"github.com/c3pm-labs/c3pm/adapter/raylibadapter"
"github.com/c3pm-labs/c3pm/adapter_interface"
"github.com/c3pm-labs/c3pm/config/manifest"
)
Expand All @@ -16,6 +17,8 @@ func (AdapterGetterImp) FromPC(adp *manifest.AdapterConfig) (adapter_interface.A
return defaultadapter.New(AdapterGetterImp{}), nil
case adp.Name == "irrlicht" && adp.Version.String() == "0.0.1":
return irrlichtadapter.New(), nil
case adp.Name == "raylib" && adp.Version.String() == "0.0.1":
return raylibadapter.New(), nil
default:
return nil, errors.New("only default adapter is supported")
}
Expand Down
1 change: 1 addition & 0 deletions adapter/defaultadapter/lib.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ project({{.ProjectName}} VERSION {{.ProjectVersion}})
set(CMAKE_CXX_STANDARD {{.LanguageStandard}})

add_library({{.ProjectName}} STATIC)
add_library({{.ProjectName}} SHARED)

target_sources({{.ProjectName}} PRIVATE {{.Sources}} {{.Headers}})
target_include_directories({{.ProjectName}} PRIVATE {{.IncludeDirs}})
Expand Down
28 changes: 28 additions & 0 deletions adapter/raylibadapter/cmakeConfig.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
package raylibadapter

var CmakeConfig = `

if ("${CMAKE_SYSTEM_NAME}" MATCHES "Linux")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -lGL -lm -lpthread -ldl -lrt -lX11 -lglfw -lstdc++")
set(THREADS_PREFER_PTHREAD_FLAG ON)
set(OpenGL_GL_PREFERENCE LEGACY)
set(USE_EXTERNAL_GLFW ON)
find_package(Threads REQUIRED)
find_package(OpenGL REQUIRED)
find_package (glfw3 REQUIRED)
set(LIBRARIES ${CMAKE_DL_LIBS} m Threads::Threads ${OPENGL_LIBRARIES} ${GLEW_LIBRARIES} ${GLFW3_LIBRARY} glfw)
endif ("${CMAKE_SYSTEM_NAME}" MATCHES "Linux")

if (APPLE)
find_library(CARBON_LIBRARY CoreVideo)
find_library(COCOA_LIBRARY Cocoa)
find_library(IOKIT_LIBRARY IOKit)
find_library(GLUT_LIBRARY GLUT)
find_library(OPENGL_LIBRARY OpenGL)
set(OSX_LIBRARIES ${COREVIDEO_LIBRARY} ${COCOA_LIBRARY} ${IOKIT_LIBRARY} ${GLUT_LIBRARY} ${OPENGL_LIBRARY})
set(MACOSX_DEPLOYMENT_TARGET ${10.9})
endif (APPLE)

target_include_directories(${C3PM_PROJECT_NAME} PRIVATE src ${RAYLIB_INCLUDE_DIR})
target_link_libraries(${C3PM_PROJECT_NAME} PUBLIC ${OSX_LIBRARIES} ${LIBRARIES} ${RAYLIB_INCLUDE_DIR})
`
81 changes: 81 additions & 0 deletions adapter/raylibadapter/raylibadapter.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
package raylibadapter

import (
"fmt"
"os"
"os/exec"
"runtime"

"github.com/c3pm-labs/c3pm/config"
"github.com/c3pm-labs/c3pm/config/manifest"
)

type RaylibAdapter struct {
}

// New creates a new builtin MakefileAdapter
func New() *RaylibAdapter {
return &RaylibAdapter{}
}

var CurrentVersion, _ = manifest.VersionFromString("0.0.1")

func executeCli(command string, dir string, args ...string) error {
cmd := exec.Command(command, args...)
cmd.Dir = dir;
cmd.Stdout = os.Stdout
cmd.Stderr = os.Stderr
err := cmd.Start()
if err != nil {
return fmt.Errorf("failed to start %s: %w", command, err)
}
if err = cmd.Wait(); err != nil {
return fmt.Errorf("%s process failed: %w", command, err)
}
return nil
}

func buildOnMacOS(pc *config.ProjectConfig) error {
return executeCli("make", "-C", pc.ProjectRoot, pc.ProjectRoot+"/src")
}

func buildOnLinux(pc *config.ProjectConfig) error {
executeCli("make", pc.ProjectRoot + "/src", "RAYLIB_LIBTYPE=SHARED", "GRAPHICS=GRAPHICS_API_OPENGL_21", "-B")
return executeCli("/bin/sh", pc.ProjectRoot + "/src", "-c", "sudo make install RAYLIB_LIBTYPE=SHARED")
}

func (a *RaylibAdapter) Build(pc *config.ProjectConfig) error {
switch runtime.GOOS {
case "darwin":
err := buildOnMacOS(pc)
if err != nil {
return err
}
oldLocation := pc.ProjectRoot + "/src/libraylib.a"
err = os.Rename(oldLocation, pc.ProjectRoot+"/libraylib.a")
if err != nil {
return err
}
case "linux":
err := buildOnLinux(pc)
if err != nil {
return err
}
// oldLocation := pc.ProjectRoot + "/build/raylib/libraylib.so"
// err = os.Rename(oldLocation, pc.ProjectRoot+"/libraylib.so")
// if err != nil {
// return err
// }
// case "windows":
// return nil
}
return nil
}

func (a *RaylibAdapter) CmakeConfig(pc *config.ProjectConfig) (string, error) {
return CmakeConfig, nil
}

func (a *RaylibAdapter) Targets(_ *config.ProjectConfig) ([]string, error) {
return nil, nil
}
Binary file added c3pm
Binary file not shown.