11## CMAKE VAR
22## <=====================================>
33cmake_minimum_required ( VERSION 3.17...3.20 )
4- set ( CMAKE_BUILD_TYPE Release ) # Release / RelWithDebInfo / Debug
4+ set ( CMAKE_BUILD_TYPE Debug ) # Release / RelWithDebInfo / Debug
55set ( CMAKE_CXX_STANDARD 20 )
66set ( CMAKE_CXX_STANDARD_REQUIRED True )
7- set ( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR} / )
8- set ( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR} /lib / )
9- set ( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR} /lib / )
7+ set ( CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR} /out/ )
8+ set ( CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR} /out / )
9+ set ( CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR} /out / )
1010## <=====================================>
1111
1212
@@ -20,94 +20,13 @@ project( Incaribus
2020 LANGUAGES
2121 CXX
2222 )
23- set ( EXEC incaribus )
24- set ( EXT cpp )
2523
26- ## SOURCE FOLDERS
27- set ( SRC_FOLDERS
28- ${CMAKE_SOURCE_DIR} /sources/
29- ${CMAKE_SOURCE_DIR} /sources/scenes/
30- )
31- ## INCLUDE FOLDERS
32- set ( INC_FOLDERS
33- ${CMAKE_SOURCE_DIR} /libs/
34- ${CMAKE_SOURCE_DIR} /libs/module/
35- ${CMAKE_SOURCE_DIR} /libs/core/includes
36- ${CMAKE_SOURCE_DIR} /includes/
37- ${CMAKE_SOURCE_DIR} /includes/scenes/
38- )
39- ## IMPORTED SHARED LIBRARY NAME
40- set ( SHARED_LIB_NAME
41- Jsnp
42- SWEngine-Core
43- SWEngine-OpenGLModule
44- glfw
45- )
46- ## IMPORTED SHARED LIBRARY LOCATION
47- set ( SHARED_LIB_LOCATION
48- ${CMAKE_SOURCE_DIR} /libs/libJsnp.so
49- ${CMAKE_SOURCE_DIR} /libs/libSWEngine-Core.so
50- ${CMAKE_SOURCE_DIR} /libs/libSWEngine-OpenGLModule.so
51- ${CMAKE_SOURCE_DIR} /libs/libglfw.so
52- )
53- ## <=====================================>
54-
55-
56- ## GET SOURCES
57- ## <=====================================>
58- foreach (filePath ${SRC_FOLDERS} )
59- string (APPEND TMP "${filePath} *.${EXT} ;" )
60- endforeach ()
61- file (GLOB SRC ${TMP} )
62- ## <=====================================>
63-
64-
65- ## OUTPUT
66- ## <=====================================>
67- ## EXECUTABLE
68- add_executable (${EXEC} ${SRC} )
69-
70- ## or SHARED LIB
71- # add_library(${EXEC} SHARED ${SRC})
72-
73- ## or STATIC LIB
74- # add_library(${EXEC} STATIC ${SRC})
75- ## <=====================================>
76-
77-
78- ## ADD INCLUDES
79- ## <=====================================>
80- target_include_directories (${EXEC} PRIVATE ${INC_FOLDERS} )
81- ## <=====================================>
82-
83- ## ADD PARAMETER
84- ## <=====================================>
85- if (UNIX )
86- target_compile_options (${EXEC} PRIVATE -g3 )
87- endif (UNIX )
88- ## <=====================================>
89-
90-
91- ## SHARED LIBRARY LINKING
92- ## <=====================================>
93- list (LENGTH SHARED_LIB_NAME list_len)
94- math (EXPR LIST_LEN "${list_len} - 1" )
95-
96- foreach (ctr RANGE ${LIST_LEN} )
97- list (GET SHARED_LIB_NAME ${ctr} lib)
98- list (GET SHARED_LIB_LOCATION ${ctr} loc)
99- add_library (${lib} SHARED IMPORTED )
100- set_target_properties (${lib} PROPERTIES
101- IMPORTED_LOCATION ${loc}
102- )
103- endforeach ()
104- target_link_libraries (${EXEC}
105- PUBLIC
106- ${SHARED_LIB_NAME}
107- )
108- ## <=====================================>
109-
110-
111- ## PACKAGE LINKING
112- ## <=====================================>
113- ## <=====================================>
24+ if (WIN32 )
25+ message ("Windows system detected, prepare project..." )
26+ include (.cmake_windows.cmake )
27+ elseif (UNIX )
28+ message ("Linux system detected, prepare project..." )
29+ include (.cmake_linux.cmake )
30+ else ()
31+ message (FATAL_ERROR "System not supported!" )
32+ endif ()
0 commit comments