Skip to content

Commit 8a806be

Browse files
committed
Cmake windows build
1 parent 8574bed commit 8a806be

File tree

3 files changed

+58
-46
lines changed

3 files changed

+58
-46
lines changed

.gitignore

100644100755
Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1-
/build/
2-
/.vscode/
3-
/example
4-
/vendor/
5-
/tables
6-
1+
/build/
2+
/.vscode/
3+
/example
4+
/vendor/
5+
/tables
6+
/stickersolve-gui
7+
/Release/stickersolve-gui.exe
8+

CMakeLists.txt

100644100755
Lines changed: 49 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,49 @@
1-
cmake_minimum_required(VERSION 3.16)
2-
project(stickersolve-gui)
3-
4-
set(CMAKE_CXX_STANDARD 20)
5-
set(CMAKE_CXX_STANDARD_REQUIRED ON)
6-
# set(CMAKE_VERBOSE_MAKEFILE ON)
7-
8-
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR})
9-
10-
# set(CMAKE_CXX_FLAGS "-Wall -Wextra")
11-
set(CMAKE_CXX_FLAGS_DEBUG "-g -no-pie -Wall -Wextra")
12-
set(CMAKE_CXX_FLAGS_RELEASE "-O3")
13-
# set(CMAKE_CXX_FLAGS_RELEASE "-Ofast -zopt -flto -fremap-arrays -mllvm -reduce-array-computations=3 -faggressive-loop-transform") # for amd compiler
14-
15-
if(WIN32)
16-
# see https://blog.kitware.com/create-dlls-on-windows-without-declspec-using-new-cmake-export-all-feature/
17-
set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
18-
endif(WIN32)
19-
20-
# the -I flag in gcc
21-
include_directories(${PROJECT_SOURCE_DIR}/include/, ${PROJECT_SOURCE_DIR}/vendor/include/)
22-
set(CMAKE_BUILD_WITH_INSTALL_RPATH on)
23-
set(CMAKE_INSTALL_RPATH "./vendor/lib" "./lib")
24-
link_directories(${PROJECT_SOURCE_DIR}/vendor/lib)
25-
26-
file(GLOB_RECURSE APP_SOURCES CONFIGURE_DEPENDS "${PROJECT_SOURCE_DIR}/src/*" "${PROJECT_SOURCE_DIR}/include/*")
27-
file(GLOB_RECURSE VENDOR_SOURCES CONFIGURE_DEPENDS "${PROJECT_SOURCE_DIR}/vendor/src/*" "${PROJECT_SOURCE_DIR}/vendor/include/*")
28-
29-
# creates ./build/bin/runner
30-
add_executable(${PROJECT_NAME} ${APP_SOURCES} ${VENDOR_SOURCES})
31-
target_compile_options(${PROJECT_NAME} PRIVATE -fPIC)
32-
target_link_libraries(${PROJECT_NAME} pthread Qt5PrintSupport Qt5Network Qt5Widgets Qt5Gui Qt5Core -l:libboost_system.a -l:libboost_iostreams.a -l:libboost_filesystem.a)
33-
34-
# shared library
35-
# set(LIBRARY_NAME World)
36-
# add_library(${LIBRARY_NAME} SHARED ${LIB_SOURCES})
37-
# target_link_libraries(${PROJECT_NAME} ${LIBRARY_NAME})
1+
cmake_minimum_required(VERSION 3.16)
2+
project(stickersolve-gui)
3+
4+
set(CMAKE_CXX_STANDARD 20)
5+
set(CMAKE_CXX_STANDARD_REQUIRED ON)
6+
# set(CMAKE_VERBOSE_MAKEFILE ON)
7+
8+
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_SOURCE_DIR})
9+
10+
set(CMAKE_CXX_FLAGS_DEBUG "-g -no-pie -Wall")
11+
set(CMAKE_CXX_FLAGS_RELEASE "-O3")
12+
13+
set(Qt5_DIR ./vendor/usr/lib/x86_64-linux-gnu/cmake/Qt5)
14+
15+
find_package(Qt5 REQUIRED Core Widgets Gui PATHS ./vendor/lib/cmake)
16+
17+
include_directories(${PROJECT_SOURCE_DIR}/include/, ${PROJECT_SOURCE_DIR}/vendor/include/)
18+
set(CMAKE_BUILD_WITH_INSTALL_RPATH on)
19+
set(CMAKE_INSTALL_RPATH "./vendor/lib" "./lib")
20+
link_directories(${PROJECT_SOURCE_DIR}/vendor/lib)
21+
22+
file(GLOB_RECURSE APP_SOURCES CONFIGURE_DEPENDS "${PROJECT_SOURCE_DIR}/src/*" "${PROJECT_SOURCE_DIR}/include/*")
23+
file(GLOB_RECURSE VENDOR_SOURCES CONFIGURE_DEPENDS "${PROJECT_SOURCE_DIR}/vendor/src/*" "${PROJECT_SOURCE_DIR}/vendor/include/*")
24+
25+
26+
if(WIN32)
27+
add_executable(${PROJECT_NAME} WIN32 ${APP_SOURCES} ${VENDOR_SOURCES})
28+
target_compile_options(${PROJECT_NAME} PRIVATE)
29+
# set_property(TARGET ${PROJECT_NAME} PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded")
30+
target_link_libraries(${PROJECT_NAME}
31+
Qt5::Core
32+
Qt5::Gui
33+
Qt5::Widgets
34+
${ADDITIONAL_LIBRARIES}
35+
)
36+
else()
37+
add_executable(${PROJECT_NAME} ${APP_SOURCES} ${VENDOR_SOURCES})
38+
target_compile_options(${PROJECT_NAME} PRIVATE -fPIC)
39+
target_link_libraries(${PROJECT_NAME}
40+
pthread
41+
Qt5::Core
42+
Qt5::Gui
43+
Qt5::Widgets
44+
-l:libboost_system.a
45+
-l:libboost_iostreams.a
46+
-l:libboost_filesystem.a
47+
${ADDITIONAL_LIBRARIES}
48+
)
49+
endif()

vendor.txt

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
deb-recurse-limit 2,
22

3-
deb qtbase5-dev "./usr/include/x86_64-linux-gnu/qt5/" "./vendor/include/",
4-
deb qtbase5-dev "./usr/lib/x86_64-linux-gnu/" "./vendor/lib/",
5-
deb qtbase5-dev "./lib/" "./vendor/lib/",
3+
deb "qtbase5-dev" "./usr/" "./vendor/usr/",
64

75
deb-recurse-limit 2,
86
deb libgl-dev "./usr/include/GL/" "./vendor/include/GL/",

0 commit comments

Comments
 (0)