Skip to content

Commit 09fd568

Browse files
committed
linux build fixed.
1 parent 6fb96dd commit 09fd568

File tree

12 files changed

+42
-92
lines changed

12 files changed

+42
-92
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -285,3 +285,4 @@ src/.DS_Store
285285
*.pbxproj
286286
.DS_Store
287287
advanced_cpp_course
288+
build/

CMakeLists.txt

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,13 @@
22
# and include sub-projects here.
33
#
44
cmake_minimum_required (VERSION 3.8)
5-
project ("STMAdvancedCPP")
5+
project ("AdvancedCPP")
66
set (CMAKE_CXX_STANDARD 17)
77

88
include_directories(
99
"."
1010
"inc"
1111
)
12-
1312
include_directories("src/1-Inheritance")
1413
include_directories("src/2-SmartPointer")
1514
include_directories("src/3-Static")
@@ -18,14 +17,22 @@ include_directories("src/5-Templates")
1817
include_directories("src/6-Exceptions")
1918
include_directories("src/7-CustomComparators")
2019
include_directories("src/8-Cpp11Features")
20+
add_subdirectory("src")
21+
22+
file (GLOB_RECURSE SRC_FILES CONFIGURE_DEPENDS
23+
${CMAKE_CURRENT_SOURCE_DIR}/src/*.c
24+
${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp
25+
)
26+
27+
add_executable(${PROJECT_NAME} "main.cpp" ${SRC_FILES})
2128

22-
#add_subdirectory("src/1-Inheritance")
23-
#add_subdirectory("src/2-SmartPointer")
24-
#add_subdirectory("src/3-Static")
25-
#add_subdirectory("src/4-CPUArchitecture")
26-
#add_subdirectory("src/5-Templates")
27-
#add_subdirectory("src/6-Exceptions")
28-
#add_subdirectory("src/7-CustomComparators")
29-
#add_subdirectory("src/8-Cpp11Features")
3029

31-
add_executable(${PROJECT_NAME} main.cpp "src/2-SmartPointer/bonus/shared.cpp")
30+
if (UNIX)
31+
find_package(Threads REQUIRED)
32+
if(THREADS_HAVE_PTHREAD_ARG)
33+
target_compile_options(${PROJECT_NAME} PUBLIC "-pthread")
34+
endif()
35+
if(CMAKE_THREAD_LIBS_INIT)
36+
target_link_libraries(${PROJECT_NAME} "${CMAKE_THREAD_LIBS_INIT}")
37+
endif()
38+
endif (UNIX)

inc/benchmarker.hpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ struct return_type_holder<void>
2121
};
2222

2323
/*
24-
TODO(oguzhank): bu sekilde bir benchmarker güzel olabilir
24+
TODO(oguzhank): bu sekilde bir benchmarker g�zel olabilir
2525
benchmarker()
2626
.prepare([]{
2727
std::cout << "thread count : 2\n";
@@ -142,7 +142,7 @@ _NODISCARD inline string to_string(std::monostate)
142142
_STD_END
143143
#else
144144
namespace std {
145-
[[nodiscard]] inline string to_string(return_type_holder<void>::empty_struct)
145+
[[nodiscard]] inline string to_string(std::monostate)
146146
{// convert void to string
147147
return string{};
148148
}

src/1-Inheritance/CMakeLists.txt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
file (GLOB SOURCES "*.cpp")
2-
file (GLOB HEADERS "*.h")
3-
file (GLOB HEADERS "*.hpp")
41

5-
# set(CMAKE_INCLUDE_CURRENT_DIR ON)
6-
# include_directories(${CMAKE_CURRENT_SOURCE_DIR})
2+
set(CMAKE_INCLUDE_CURRENT_DIR ON)
3+
include_directories(${CMAKE_CURRENT_SOURCE_DIR})

src/2-SmartPointer/CMakeLists.txt

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,2 @@
1-
file (GLOB SOURCES "*.cpp")
2-
file (GLOB HEADERS "*.h")
3-
file (GLOB HEADERS "*.hpp")
4-
file (GLOB SOURCES "bonus/shared.cpp")
5-
6-
# set(CMAKE_INCLUDE_CURRENT_DIR ON)
7-
# include_directories(${CMAKE_CURRENT_SOURCE_DIR})
1+
set(CMAKE_INCLUDE_CURRENT_DIR ON)
2+
include_directories(${CMAKE_CURRENT_SOURCE_DIR})

src/3-Static/CMakeLists.txt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
file (GLOB SOURCES "*.cpp")
2-
file (GLOB HEADERS "*.h")
3-
file (GLOB HEADERS "*.hpp")
41

5-
# set(CMAKE_INCLUDE_CURRENT_DIR ON)
6-
# include_directories(${CMAKE_CURRENT_SOURCE_DIR})
2+
set(CMAKE_INCLUDE_CURRENT_DIR ON)
3+
include_directories(${CMAKE_CURRENT_SOURCE_DIR})
Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
file (GLOB SOURCES "*.cpp")
2-
file (GLOB HEADERS "*.h")
3-
file (GLOB HEADERS "*.hpp")
41

5-
# set(CMAKE_INCLUDE_CURRENT_DIR ON)
6-
# include_directories(${CMAKE_CURRENT_SOURCE_DIR})
2+
set(CMAKE_INCLUDE_CURRENT_DIR ON)
3+
include_directories(${CMAKE_CURRENT_SOURCE_DIR})

src/4-CPUArchitecture/packed_data_access.hpp

Lines changed: 5 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -11,50 +11,25 @@ namespace packed_data_access
1111
double value;
1212
};
1313

14-
#ifdef WIN32
15-
14+
#ifdef _WIN32
1615
#pragma pack(push,1)
1716
struct PackedStruct
1817
{
1918
char c;
2019
double value;
2120
};
2221
#pragma pack(pop)
23-
24-
template <typename S, int Size>
25-
struct StructCreator
26-
{
27-
StructCreator() : size(Size - 1)
28-
{
29-
auto len = size;
30-
while (--len > 0)
31-
{
32-
arr[len].c = 'a' + (len % 20);
33-
arr[len].value = len / 1000.0;
34-
}
35-
}
36-
std::size_t size;
37-
S arr[Size];
38-
};
39-
// Visual Studio compilers are crashing due to
40-
// their bugs when using nested constexpr structs
41-
// bu sebepten dolayi derleyici zamani yerine programin
42-
// calistirildiginda static olarak yaratiyorum
43-
static StructCreator<AlignedStruct, 1024 * 1024> aligned_list;
44-
static StructCreator<PackedStruct, 1024 * 1024> packed_list;
45-
4622
#else
47-
//#include <cstdint>
48-
4923
struct PackedStruct {
5024
char c;
5125
double value;
5226
} __attribute__((packed));
27+
#endif
5328

5429
template <typename S, int Size>
5530
struct StructCreator
5631
{
57-
constexpr StructCreator() : arr(), size(Size - 1)
32+
StructCreator() : size(Size - 1)
5833
{
5934
auto len = size;
6035
while (--len > 0)
@@ -66,8 +41,8 @@ namespace packed_data_access
6641
std::size_t size;
6742
S arr[Size];
6843
};
69-
#endif
70-
44+
static StructCreator<AlignedStruct, 1024 * 1024> aligned_list;
45+
static StructCreator<PackedStruct, 1024 * 1024> packed_list;
7146
}
7247

7348
// iki yapinin icerdigi veriler ayni olsa da uzunluklari farkli olacaktir
@@ -81,18 +56,12 @@ auto sum_lambda = [](int sum, const auto& s) {
8156

8257
CREATE_ELEMENT_WITH_CODE(AlignedStructAccess) {
8358
using namespace packed_data_access;
84-
#ifndef WIN32
85-
constexpr auto aligned_list = StructCreator<AlignedStruct, 1024 * 10>();
86-
#endif
8759
unsigned int sum = std::accumulate(&aligned_list.arr[0], &aligned_list.arr[aligned_list.size], 0, sum_lambda);
8860
std::cout << "sum: " << sum << "\n";
8961
}
9062

9163
CREATE_ELEMENT_WITH_CODE(PackedStructAccess) {
9264
using namespace packed_data_access;
93-
#ifndef WIN32
94-
constexpr auto packed_list = StructCreator<PackedStruct, 1024 * 10>();
95-
#endif
9665
unsigned int sum = std::accumulate(&packed_list.arr[0], &packed_list.arr[packed_list.size], 0, sum_lambda);
9766
std::cout << "sum: " << sum << "\n";
9867
}

src/5-Templates/CMakeLists.txt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,2 @@
1-
file (GLOB SOURCES "*.cpp")
2-
file (GLOB HEADERS "*.h")
3-
file (GLOB HEADERS "*.hpp")
4-
5-
# set(CMAKE_INCLUDE_CURRENT_DIR ON)
6-
# include_directories(${CMAKE_CURRENT_SOURCE_DIR})
1+
set(CMAKE_INCLUDE_CURRENT_DIR ON)
2+
include_directories(${CMAKE_CURRENT_SOURCE_DIR})

src/6-Exceptions/CMakeLists.txt

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,3 @@
1-
file (GLOB SOURCES "*.cpp")
2-
file (GLOB HEADERS "*.h")
3-
file (GLOB HEADERS "*.hpp")
41

5-
# set(CMAKE_INCLUDE_CURRENT_DIR ON)
6-
# include_directories(${CMAKE_CURRENT_SOURCE_DIR})
2+
set(CMAKE_INCLUDE_CURRENT_DIR ON)
3+
include_directories(${CMAKE_CURRENT_SOURCE_DIR})

0 commit comments

Comments
 (0)