Skip to content

Commit ffe42b7

Browse files
committed
Separate GCC/NASM flags & definitions
Similar change was done for the unittests in b178e62.
1 parent 8789c77 commit ffe42b7

File tree

11 files changed

+46
-34
lines changed

11 files changed

+46
-34
lines changed

cmake/compile_assemble_link.cmake

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
# compile_lib (NAME name
33
# SOURCES <source> [<source> ...]
44
# [FLAGS <flag> ...]
5+
# [DEFINITIONS <compiler macros> ...]
56
# [INCLUDE_DIRECTORIES <paths> ...]
67
# [STATIC_LIB])
78
#
@@ -237,6 +238,7 @@ endfunction()
237238
# test (NAME name
238239
# [DEPENDENT_FOR target]
239240
# [SOURCES <source> [<source> ...]
241+
# [DEFINITIONS <compiler macros> ...]
240242
# [INCLUDE_DIRECTORIES <paths> ..])
241243
#
242244
# Produces test executable from the source files. Binary files so produced are placed in
@@ -287,13 +289,14 @@ endfunction()
287289
# assemble_and_copy_bin (NAME name
288290
# SOURCES <source> [<source> ...]
289291
# [FLAGS <assembler flag> ...]
292+
# [DEFINITIONS <assembler macros> ...]
290293
# [INCLUDE_DIRECTORIES <paths> ..])
291294
#
292295
# Compiles a assembly files using NASM then copies each object files to MOS_BIN_DIR.
293296
# ==================================================================================================
294297
function(assemble_and_copy_bin)
295298
set(oneValueArgs NAME)
296-
set(multiValueArgs SOURCES FLAGS INCLUDE_DIRECTORIES)
299+
set(multiValueArgs SOURCES FLAGS INCLUDE_DIRECTORIES DEFINITIONS)
297300
set(options)
298301
cmake_parse_arguments(PARSE_ARGV 0 ASSEMBLE "${options}" "${oneValueArgs}" "${multiValueArgs}")
299302

@@ -312,6 +315,7 @@ function(assemble_and_copy_bin)
312315
NAME ${INTERMEDIATE_BIN_NAME}
313316
SOURCES ${ASSEMBLE_SOURCES}
314317
FLAGS ${ASSEMBLE_FLAGS}
318+
DEFINITIONS ${ASSEMBLE_DEFINITIONS}
315319
INCLUDE_DIRECTORIES ${ASSEMBLE_INCLUDE_DIRECTORIES}
316320
)
317321
copy_object_file(

cmake/mosflags.cmake

Lines changed: 12 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -12,25 +12,23 @@ if(CMAKE_CROSSCOMPILING)
1212
list(APPEND MOS_KERNEL_NASM_ELF_MODE_FLAGS -g)
1313

1414
list(APPEND MOS_USER_GCC_FLAGS -g)
15-
list(APPEND MOS_USER_NASM_ELF_MODE_FLAGS -g)
1615
endif()
1716

1817
If (MOS_GRAPHICS_ENABLED)
19-
list(APPEND MOS_KERNEL_GCC_FLAGS -DGRAPHICS_MODE_ENABLED)
20-
list(APPEND MOS_KERNEL_NASM_ELF_MODE_FLAGS -DGRAPHICS_MODE_ENABLED)
21-
list(APPEND MOS_KERNEL_NASM_BIN_MODE_FLAGS -DGRAPHICS_MODE_ENABLED)
22-
23-
list(APPEND MOS_USER_GCC_FLAGS -DGRAPHICS_MODE_ENABLED)
24-
list(APPEND MOS_USER_NASM_ELF_MODE_FLAGS -DGRAPHICS_MODE_ENABLED)
25-
list(APPEND MOS_USER_NASM_BIN_MODE_FLAGS -DGRAPHICS_MODE_ENABLED)
18+
list(APPEND MOS_KERNEL_GCC_DEFINITIONS
19+
GRAPHICS_MODE_ENABLED
20+
GRAPHICS_BPP=${MOS_GRAPHICS_BPP}
21+
)
2622

27-
list(APPEND MOS_KERNEL_GCC_FLAGS -DGRAPHICS_BPP=${MOS_GRAPHICS_BPP})
28-
list(APPEND MOS_KERNEL_NASM_BIN_MODE_FLAGS -DGRAPHICS_BPP=${MOS_GRAPHICS_BPP})
29-
list(APPEND MOS_KERNEL_NASM_ELF_MODE_FLAGS -DGRAPHICS_BPP=${MOS_GRAPHICS_BPP})
23+
list(APPEND MOS_KERNEL_NASM_DEFINITIONS
24+
GRAPHICS_MODE_ENABLED
25+
GRAPHICS_BPP=${MOS_GRAPHICS_BPP}
26+
)
3027

31-
list(APPEND MOS_USER_GCC_FLAGS -DGRAPHICS_BPP=${MOS_GRAPHICS_BPP})
32-
list(APPEND MOS_USER_NASM_BIN_MODE_FLAGS -DGRAPHICS_BPP=${MOS_GRAPHICS_BPP})
33-
list(APPEND MOS_USER_NASM_ELF_MODE_FLAGS -DGRAPHICS_BPP=${MOS_GRAPHICS_BPP})
28+
list(APPEND MOS_USER_GCC_DEFINITIONS
29+
GRAPHICS_MODE_ENABLED
30+
GRAPHICS_BPP=${MOS_GRAPHICS_BPP}
31+
)
3432
endif()
3533

3634
else()

cmake/x86/kernelflags.cmake

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,26 +25,31 @@ set(MOS_KERNEL_GCC_FLAGS
2525
-fno-unit-at-a-time
2626
-fno-omit-frame-pointer
2727
-fno-inline-functions-called-once
28-
-D${MOS_BUILD_MODE}
29-
-DMARCH=${MARCH}
30-
-DARCH=${ARCH}
31-
-DKERNEL
3228
)
3329

30+
set(MOS_KERNEL_GCC_DEFINITIONS
31+
${MOS_BUILD_MODE}
32+
MARCH=${MARCH}
33+
ARCH=${ARCH}
34+
KERNEL
35+
)
36+
3437
if (MOS_PORT_E9_ENABLED)
35-
list(APPEND MOS_KERNEL_GCC_FLAGS -DPORT_E9_ENABLED)
38+
list(APPEND MOS_KERNEL_GCC_DEFINITIONS PORT_E9_ENABLED)
3639
endif()
3740

41+
set(MOS_KERNEL_NASM_DEFINITIONS
42+
KERNEL
43+
)
44+
3845
set(MOS_KERNEL_NASM_BIN_MODE_FLAGS
3946
-O0
4047
-f bin
41-
-DKERNEL
4248
)
4349

4450
set(MOS_KERNEL_NASM_ELF_MODE_FLAGS
4551
-O0
4652
-f elf
47-
-DKERNEL
4853
)
4954

5055
set(MOS_KERNEL_ASM_INCLUDE_DIRS

cmake/x86/userflags.cmake

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -17,20 +17,13 @@ set(MOS_USER_GCC_FLAGS
1717
-fno-omit-frame-pointer
1818
-fno-inline-functions-called-once
1919
-fno-inline-small-functions
20-
-D${MOS_BUILD_MODE}
21-
-DMARCH=${MARCH}
22-
-DARCH=${ARCH}
2320
)
2421

25-
set(MOS_USER_NASM_BIN_MODE_FLAGS
26-
-O0
27-
-f bin
28-
)
29-
30-
set(MOS_USER_NASM_ELF_MODE_FLAGS
31-
-O0
32-
-f elf
33-
)
22+
set(MOS_USER_GCC_DEFINITIONS
23+
${MOS_BUILD_MODE}
24+
MARCH=${MARCH}
25+
ARCH=${ARCH}
26+
)
3427

3528
set(MOS_USER_GCC_INCLUDE_DIRS
3629
${PROJECT_SOURCE_DIR}/include/applib

src/apps/CMakeLists.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ compile_lib(
55
NAME proc1
66
SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/proc1.c
77
FLAGS ${MOS_USER_GCC_FLAGS}
8+
DEFINITIONS ${MOS_USER_GCC_DEFINITIONS}
89
INCLUDE_DIRECTORIES ${MOS_USER_GCC_INCLUDE_DIRS}
910
)
1011

@@ -24,6 +25,7 @@ compile_lib(
2425
NAME mpdemo
2526
SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/mpdemo.c
2627
FLAGS ${MOS_USER_GCC_FLAGS}
28+
DEFINITIONS ${MOS_USER_GCC_DEFINITIONS}
2729
INCLUDE_DIRECTORIES ${MOS_USER_GCC_INCLUDE_DIRS}
2830
)
2931

@@ -43,6 +45,7 @@ compile_lib(
4345
NAME gui0
4446
SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/gui0.c
4547
FLAGS ${MOS_USER_GCC_FLAGS}
48+
DEFINITIONS ${MOS_USER_GCC_DEFINITIONS}
4649
INCLUDE_DIRECTORIES ${MOS_USER_GCC_INCLUDE_DIRS}
4750
)
4851

src/apps/applib/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ compile_lib(
1111
NAME crta
1212
SOURCES ${APPS_CRT_SOURCES}
1313
FLAGS ${MOS_KERNEL_GCC_FLAGS}
14+
DEFINITIONS ${MOS_KERNEL_GCC_DEFINITIONS}
1415
INCLUDE_DIRECTORIES ${MOS_KERNEL_GCC_INCLUDE_DIRS}
1516
)
1617
# ------------------------------------------------------------------------
@@ -32,6 +33,7 @@ compile_lib(
3233
NAME app
3334
SOURCES ${APPLIB_SOURCES}
3435
FLAGS ${MOS_KERNEL_GCC_FLAGS}
36+
DEFINITIONS ${MOS_KERNEL_GCC_DEFINITIONS}
3537
INCLUDE_DIRECTORIES ${MOS_KERNEL_GCC_INCLUDE_DIRS}
3638
STATIC_LIB
3739
)

src/bootloader/x86/CMakeLists.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ assemble_and_copy_bin(
22
NAME boot0.flt
33
SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/boot0/boot.s
44
FLAGS ${MOS_KERNEL_NASM_BIN_MODE_FLAGS}
5+
DEFINITIONS ${MOS_KERNEL_GCC_DEFINITIONS}
56
INCLUDE_DIRECTORIES
67
${CMAKE_CURRENT_SOURCE_DIR}/boot0
78
${MOS_KERNEL_ASM_INCLUDE_DIRS}
@@ -11,6 +12,7 @@ assemble_and_copy_bin(
1112
NAME boot1.flt
1213
SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/boot1/boot1.s
1314
FLAGS ${MOS_KERNEL_NASM_BIN_MODE_FLAGS}
15+
DEFINITIONS ${MOS_KERNEL_GCC_DEFINITIONS}
1416
INCLUDE_DIRECTORIES
1517
${CMAKE_CURRENT_SOURCE_DIR}/boot1
1618
${MOS_KERNEL_ASM_INCLUDE_DIRS}

src/common/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,5 +6,6 @@ compile_lib(
66
NAME common
77
SOURCES ${COMMON_SOURCES}
88
FLAGS ${MOS_KERNEL_GCC_FLAGS}
9+
DEFINITIONS ${MOS_KERNEL_GCC_DEFINITIONS}
910
INCLUDE_DIRECTORIES ${MOS_KERNEL_GCC_INCLUDE_DIRS}
1011
)

src/kernel/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,5 +25,6 @@ compile_lib(
2525
NAME kernel
2626
SOURCES ${KERNEL_SOURCES}
2727
FLAGS ${MOS_KERNEL_GCC_FLAGS}
28+
DEFINITIONS ${MOS_KERNEL_GCC_DEFINITIONS}
2829
INCLUDE_DIRECTORIES ${MOS_KERNEL_GCC_INCLUDE_DIRS}
2930
)

src/kernel/drivers/x86/pc/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,5 +11,6 @@ compile_lib(
1111
NAME kernel_drivers
1212
SOURCES ${DRIVER_SOUCES}
1313
FLAGS ${MOS_KERNEL_GCC_FLAGS}
14+
DEFINITIONS ${MOS_KERNEL_GCC_DEFINITIONS}
1415
INCLUDE_DIRECTORIES ${MOS_KERNEL_GCC_INCLUDE_DIRS}
1516
)

0 commit comments

Comments
 (0)