init
This commit is contained in:
		
							parent
							
								
									0cf2ab9efe
								
							
						
					
					
						commit
						ed335c9e01
					
				
					 2 changed files with 99 additions and 0 deletions
				
			
		
							
								
								
									
										49
									
								
								makefile
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								makefile
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,49 @@ | |||
| TARGET_EXEC := rts_game | ||||
| 
 | ||||
| BUILD_DIR := ./build | ||||
| SRC_DIRS := ./src | ||||
| 
 | ||||
| # Find all the C and C++ files we want to compile
 | ||||
| # Note the single quotes around the * expressions. The shell will incorrectly expand these otherwise, but we want to send the * directly to the find command.
 | ||||
| SRCS := $(shell find $(SRC_DIRS) -name '*.cpp' -or -name '*.c' -or -name '*.s') | ||||
| 
 | ||||
| # Prepends BUILD_DIR and appends .o to every src file
 | ||||
| # As an example, ./your_dir/hello.cpp turns into ./build/./your_dir/hello.cpp.o
 | ||||
| OBJS := $(SRCS:%=$(BUILD_DIR)/%.o) | ||||
| 
 | ||||
| # String substitution (suffix version without %).
 | ||||
| # As an example, ./build/hello.cpp.o turns into ./build/hello.cpp.d
 | ||||
| DEPS := $(OBJS:.o=.d) | ||||
| 
 | ||||
| # Every folder in ./src will need to be passed to GCC so that it can find header files
 | ||||
| INC_DIRS := $(shell find $(SRC_DIRS) -type d) | ||||
| # Add a prefix to INC_DIRS. So moduleA would become -ImoduleA. GCC understands this -I flag
 | ||||
| INC_FLAGS := $(addprefix -I,$(INC_DIRS)) | ||||
| 
 | ||||
| # The -MMD and -MP flags together generate Makefiles for us!
 | ||||
| # These files will have .d instead of .o as the output.
 | ||||
| CPPFLAGS := $(INC_FLAGS) -MMD -MP | ||||
| 
 | ||||
| # The final build step.
 | ||||
| $(BUILD_DIR)/$(TARGET_EXEC): $(OBJS) | ||||
| 	$(CXX) $(OBJS) -o $@ $(LDFLAGS) | ||||
| 
 | ||||
| # Build step for C source
 | ||||
| $(BUILD_DIR)/%.c.o: %.c | ||||
| 	mkdir -p $(dir $@) | ||||
| 	$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $@ | ||||
| 
 | ||||
| # Build step for C++ source
 | ||||
| $(BUILD_DIR)/%.cpp.o: %.cpp | ||||
| 	mkdir -p $(dir $@) | ||||
| 	$(CXX) $(CPPFLAGS) $(CXXFLAGS) -c $< -o $@ | ||||
| 
 | ||||
| 
 | ||||
| .PHONY: clean | ||||
| clean: | ||||
| 	rm -r $(BUILD_DIR) | ||||
| 
 | ||||
| # Include the .d makefiles. The - at the front suppresses the errors of missing
 | ||||
| # Makefiles. Initially, all the .d files will be missing, and we don't want those
 | ||||
| # errors to show up.
 | ||||
| -include $(DEPS) | ||||
							
								
								
									
										50
									
								
								src/main.c
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								src/main.c
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,50 @@ | |||
| #include <SDL2/SDL.h> | ||||
| 
 | ||||
| // Define constants for screen width and height
 | ||||
| const int SCREEN_WIDTH = 800; | ||||
| const int SCREEN_HEIGHT = 600; | ||||
| 
 | ||||
| int main(int argc, char* argv[]) { | ||||
|     // Initialize SDL
 | ||||
|     SDL_Init(SDL_INIT_VIDEO); | ||||
| 
 | ||||
|     // Create a window
 | ||||
|     SDL_Window* window = SDL_CreateWindow("RTS Game", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, | ||||
|                                           SCREEN_WIDTH, SCREEN_HEIGHT, SDL_WINDOW_SHOWN); | ||||
| 
 | ||||
|     // Create a renderer
 | ||||
|     SDL_Renderer* renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED); | ||||
| 
 | ||||
|     // Main loop flag
 | ||||
|     bool quit = false; | ||||
| 
 | ||||
|     // Event handler
 | ||||
|     SDL_Event e; | ||||
| 
 | ||||
|     // Main loop
 | ||||
|     while (!quit) { | ||||
|         // Handle events on queue
 | ||||
|         while (SDL_PollEvent(&e) != 0) { | ||||
|             // User requests quit
 | ||||
|             if (e.type == SDL_QUIT) { | ||||
|                 quit = true; | ||||
|             } | ||||
|         } | ||||
| 
 | ||||
|         // Clear screen
 | ||||
|         SDL_SetRenderDrawColor(renderer, 0xFF, 0xFF, 0xFF, 0xFF); | ||||
|         SDL_RenderClear(renderer); | ||||
| 
 | ||||
|         // Update screen
 | ||||
|         SDL_RenderPresent(renderer); | ||||
|     } | ||||
| 
 | ||||
|     // Destroy window and renderer
 | ||||
|     SDL_DestroyRenderer(renderer); | ||||
|     SDL_DestroyWindow(window); | ||||
| 
 | ||||
|     // Quit SDL subsystems
 | ||||
|     SDL_Quit(); | ||||
| 
 | ||||
|     return 0; | ||||
| } | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue